Function at 0x4222b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
mov eax, dword [0x549944]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
test edi, edi
jle 0x42269f
mov eax, edi
dec edi
cmp dword [esi + 0x10], 0
mov dword [ebp + 0xc], edi
je 0x42269f
cmp ebx, 1
jl 0x422688
cmp ebx, dword [esi + 0xc]
ja 0x422667
mov edi, ebx
mov ecx, ebx
shr edi, 3
and ecx, 7
add edi, dword [esi + 8]
mov eax, 1
shl eax, cl
movzx edx, byte [edi]
test edx, eax
jne 0x422646
bts edx, ecx
push 0
mov byte [edi], dl
lea ecx, [esp + 0x3c]
mov eax, dword [esi + 4]
push ecx
push ebx
push eax
mov eax, dword [eax + 0xc8]
call eax
add esp, 0x10
test eax, eax
jne 0x422625
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 4]
mov dword [esp + 0x18], ecx
je 0x422509
mov edi, dword [ecx + 4]
mov ecx, dword [esi]
bswap edi
mov dword [esp + 0x28], edi
cmp byte [ecx + 0x11], 0
je 0x4223d4
lea eax, [esp + 0x20]
mov edx, ebx
push eax
lea eax, [esp + 0x11]
push eax
call fcn.00417490
add esp, 8
test eax, eax
je 0x4223ab
cmp eax, 7
je 0x422393
cmp eax, 0xc0a
jne 0x42239a
mov dword [esi + 0x18], 1
push ebx
push 0x5391e8
push esi
call fcn.00422220
add esp, 0xc
jmp 0x4223d4
mov cl, byte [esp + 0xd]
mov eax, dword [esp + 0x20]
cmp cl, 2
jne 0x4223bc
test eax, eax
je 0x4223d4
push eax
movzx eax, cl
push eax
push 0
push 2
push ebx
push 0x539208
push esi
call fcn.00422220
add esp, 0x1c
mov eax, dword [esi]
mov eax, dword [eax + 0x24]
cdq
and edx, 3
add eax, edx
sar eax, 2
sub eax, 2
cmp edi, eax
jle 0x422400
push ebx
push 0x539294
push esi
call fcn.00422220
add esp, 0xc
dec dword [ebp + 0xc]
jmp 0x422584
test edi, edi
jle 0x422504
mov eax, dword [esp + 0x18]
mov edx, edi
add eax, 8
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
nop dword [eax]
mov ecx, dword [esi]
mov edi, dword [eax]
bswap edi
cmp byte [ecx + 0x11], 0
je 0x422499
lea eax, [esp + 0x24]
mov edx, edi
push eax
lea eax, [esp + 0x12]
push eax
call fcn.00417490
add esp, 8
test eax, eax
je 0x422468
cmp eax, 7
je 0x422450
cmp eax, 0xc0a
jne 0x422457
mov dword [esi + 0x18], 1
push edi
push 0x5391e8
push esi
call fcn.00422220
add esp, 0xc
jmp 0x422491
mov cl, byte [esp + 0xe]
mov eax, dword [esp + 0x24]
cmp cl, 2
jne 0x422479
test eax, eax
je 0x422491
push eax
movzx eax, cl
push eax
push 0
push 2
push edi
push 0x539208
push esi
call fcn.00422220
add esp, 0x1c
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test edi, edi
je 0x4224ec
cmp edi, dword [esi + 0xc]
jbe 0x4224b3
push edi
push 0x5391b4
push esi
call fcn.00422220
add esp, 0xc
jmp 0x4224e4
mov ebx, edi
mov ecx, edi
shr ebx, 3
and ecx, 7
add ebx, dword [esi + 8]
mov eax, 1
shl eax, cl
movzx edx, byte [ebx]
test edx, eax
je 0x4224df
push edi
push 0x5391cc
push esi
call fcn.00422220
add esp, 0xc
jmp 0x4224e4
bts edx, ecx
mov byte [ebx], dl
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add eax, 4
sub edx, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
jne 0x422420
mov edi, dword [esp + 0x28]
sub dword [ebp + 0xc], edi
jmp 0x422584
mov ecx, dword [esi]
cmp byte [ecx + 0x11], 0
je 0x422584
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x422584
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x13]
bswap edi
push eax
mov edx, edi
call fcn.00417490
add esp, 8
test eax, eax
je 0x42255c
cmp eax, 7
je 0x422544
cmp eax, 0xc0a
jne 0x42254b
mov dword [esi + 0x18], 1
push edi
push 0x5391e8
push esi
call fcn.00422220
add esp, 0xc
jmp 0x422584
mov cl, byte [esp + 0xf]
mov eax, dword [esp + 0x2c]
cmp cl, 4
jne 0x42256d
cmp eax, ebx
je 0x422584
push eax
movzx eax, cl
push eax
push ebx
push 4
push edi
push 0x539208
push esi
call fcn.00422220
add esp, 0x1c
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov ebx, dword [eax]
bswap ebx
mov dword [ebp + 8], ebx
test edx, edx
je 0x4225e8
test byte [edx + 0x1c], 0x20
je 0x4225df
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004e59d0
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
mov ebx, dword [ebp + 8]
add esp, 0x10
jmp 0x4225e8
mov ecx, dword [esp + 0x38]
call fcn.0040d5a0
cmp dword [esp + 0x1c], 0
mov edi, dword [ebp + 0xc]
je 0x42260b
xor eax, eax
test ebx, ebx
setne al
cmp edi, eax
jge 0x42260b
push 0x5392bc
push esi
call fcn.00422220
add esp, 8
test edi, edi
jg 0x4222e3
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
push ebx
push 0x53927c
push esi
call fcn.00422220
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
push ebx
push 0x5391cc
push esi
call fcn.00422220
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
push ebx
push 0x5391b4
push esi
call fcn.00422220
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret
push dword [esp + 0x30]
push dword [esp + 0x38]
push eax
push 0x539240
push esi
call fcn.00422220
add esp, 0x14
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004e5962
mov esp, ebp
pop ebp
ret