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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
call fcn.004bf8e0
mov dword [ebx + 0xbc], 0
mov dword [esp + 4], 2
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004a2754
sub esp, 8
mov dword [ebx + 0x8c], eax
mov dword [esp + 4], 3
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004a2754
sub esp, 8
mov dword [ebx + 0x90], eax
mov dword [ebx + 0x94], 0
mov dword [ebx + 0x98], 0xffffffff
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x6c], 0
mov dword [ebx + 0x70], 0
mov esi, dword [ebx + 0x64]
test esi, esi
je 0x422bb8
cmp dword [ebx + 0xc], 0x3fffffff
jbe 0x422e60
call fcn.004a9697
cmp eax, 0x1000a
je 0x422ce0
call fcn.004ab959
add eax, dword [0x5ac6e0]
mov esi, eax
shr esi, 0x1f
add esi, eax
sar esi, 1
mov edx, dword [ebx + 0xc]
test edx, 0x40000000
je 0x422ae8
mov eax, dword [0x5ac6f0]
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
mov ebp, esi
sub ebp, ecx
mov dword [esp + 0x1c], ebp
mov edi, dword [0x5ac6ec]
xor ecx, ecx
test edi, edi
jns 0x422a8a
mov ecx, edi
neg edi
test eax, eax
jns 0x422a94
add dword [esp + 0x1c], eax
neg eax
mov ebp, dword [ebx + 0x8c]
cmp ebp, ecx
jl 0x422ae8
add ecx, edi
cmp ebp, ecx
jge 0x422ae8
mov ecx, dword [ebx + 0x90]
mov ebp, dword [esp + 0x1c]
cmp ecx, ebp
jl 0x422ae8
add ebp, eax
cmp ecx, ebp
jge 0x422ae8
mov dword [ebx + 0x70], 0x40000000
mov dword [ebx + 0x68], 0
call fcn.004a9697
cmp eax, 0x10004
je 0x422d59
mov edx, dword [ebx + 0xc]
cmp eax, 0x10005
je 0x422d70
lea esi, [esi]
test edx, edx
js 0x422d90
mov edx, dword [ebx + 0x68]
test edx, edx
je 0x422e4c
lea esi, [ebx + 0x18]
mov eax, dword [ebx + 0xc]
mov ecx, dword [edx + 0x1c]
test ecx, ecx
je 0x422b0e
cmp word [ecx], 0
jne 0x422b10
mov ecx, dword [edx]
mov dword [ebx + 0xbc], ecx
test al, 1
je 0x422e90
cmp edx, esi
je 0x422e98
mov ecx, dword [0x5ac6e8]
mov edi, dword [edx + 0x40]
sub edi, ecx
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
add eax, dword [edx + 0x38]
mov edi, dword [edx + 0x3c]
add edi, dword [edx + 0x34]
sub edi, dword [edx + 0x44]
test ecx, ecx
jns 0x422e80
mov ebp, ecx
neg ebp
add eax, ecx
mov ecx, dword [ebx + 0x8c]
cmp edi, ecx
jg 0x422b87
add edi, ebp
cmp ecx, edi
jge 0x422b87
mov ecx, dword [ebx + 0x90]
cmp ecx, eax
jl 0x422b87
add ebp, eax
cmp ecx, ebp
jge 0x422b87
mov dword [ebx + 0x6c], 1
mov eax, dword [ebx + 0xcc]
mov dword [ebx + 0xbc], eax
mov dword [esp + 4], edx
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b64d3
sub esp, 8
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b6605
sub esp, 4
mov dword [ebx + 0x98], eax
jmp 0x422eae
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b60ad
sub esp, 4
jmp 0x422bd6
add eax, 8
mov dword [ebx + 0x68], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b60c2
sub esp, 4
test eax, eax
je 0x422c50
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x422bd6
mov edx, dword [eax + 0x3c]
mov esi, dword [eax + 0x40]
mov dword [esp + 0x1c], esi
mov ecx, dword [eax + 0x44]
mov ebp, dword [eax + 0x48]
lea esi, [ebp - 1]
mov edi, ecx
sub edi, 1
jns 0x422c15
add edx, edi
mov edi, 1
sub edi, ecx
test esi, esi
jns 0x422c24
add dword [esp + 0x1c], esi
mov esi, 1
sub esi, ebp
mov ecx, dword [ebx + 0x8c]
cmp ecx, edx
jl 0x422bd6
add edx, edi
cmp ecx, edx
jge 0x422bd6
mov ecx, dword [ebx + 0x90]
mov edx, dword [esp + 0x1c]
cmp ecx, edx
jl 0x422bd6
add edx, esi
cmp ecx, edx
jge 0x422bd6
jmp 0x422bd0
mov eax, dword [ebx + 0xc]
test al, 2
je 0x422cc8
mov edx, dword [ebx + 0x4c]
mov esi, dword [ebx + 0x50]
mov dword [esp + 0x1c], esi
mov esi, dword [ebx + 0x54]
mov edi, esi
mov ebp, dword [ebx + 0x58]
lea ecx, [ebp - 1]
sub esi, 1
jns 0x422c7a
add edx, esi
mov esi, 1
sub esi, edi
test ecx, ecx
jns 0x422c89
add dword [esp + 0x1c], ecx
mov ecx, 1
sub ecx, ebp
mov ebp, dword [ebx + 0x8c]
cmp ebp, edx
jl 0x422cc8
add edx, esi
cmp ebp, edx
jge 0x422cc8
mov edx, dword [ebx + 0x90]
mov edi, dword [esp + 0x1c]
cmp edx, edi
jl 0x422cc8
add edi, ecx
cmp edx, edi
jge 0x422cc8
lea edx, [ebx + 0x18]
mov dword [ebx + 0x68], edx
mov esi, edx
cmp eax, 0x3fffffff
jbe 0x422b01
jmp 0x422a31
cmp eax, 0x3fffffff
jbe 0x422af0
jmp 0x422a31
mov dword [esp + 4], 8
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004a2754
sub esp, 8
imul eax, dword [0x5ac708]
test eax, eax
js 0x422d40
je 0x422a41
add dword [ebx + 0x9c], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b619b
sub esp, 4
cmp dword [ebx + 0x9c], eax
jle 0x422a41
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b619b
sub esp, 4
mov dword [ebx + 0x9c], eax
jmp 0x422a41
add eax, dword [ebx + 0x9c]
mov edx, 0
cmovs eax, edx
mov dword [ebx + 0x9c], eax
jmp 0x422a41
mov dword [ebx + 0x80], 0x40000000
mov edx, dword [ebx + 0xc]
jmp 0x422ae8
mov eax, dword [ebx + 0x70]
cmp dword [ebx + 0x80], eax
jne 0x422ae8
sub dword [ebx + 0x9c], 1
jmp 0x422ae8
call fcn.004ab96c
mov edi, dword [0x5ac6ec]
sub eax, edi
test byte [ebx + 0xc], 2
je 0x422dac
sub eax, dword [ebx + 0x38]
sub eax, dword [0x5ac6e0]
mov ecx, dword [0x5ac6f0]
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
sub esi, edx
test edi, edi
jns 0x422dc5
add eax, edi
neg edi
test ecx, ecx
jns 0x422dcd
add esi, ecx
neg ecx
mov edx, dword [ebx + 0x8c]
cmp edx, eax
jl 0x422af0
add eax, edi
cmp edx, eax
jge 0x422af0
mov eax, dword [ebx + 0x90]
cmp eax, esi
jl 0x422af0
add esi, ecx
cmp eax, esi
jge 0x422af0
mov dword [ebx + 0x70], connect
mov dword [ebx + 0x68], 0
call fcn.004a9697
cmp eax, 0x10004
je 0x422e3d
cmp eax, 0x10005
jne 0x422af0
mov eax, dword [ebx + 0x70]
cmp dword [ebx + 0x80], eax
jne 0x422af0
add dword [ebx + 0x9c], 1
jmp 0x422af0
mov dword [ebx + 0x80], connect
jmp 0x422af0
cmp dword [ebx + 0x70], 0
jne 0x422eea
lea esi, [esi]
lea esi, [esi]
call fcn.004a9697
cmp eax, 2
jne 0x422eea
mov dword [ebx + 0x94], 1
jmp 0x422eea
sub edi, ecx
mov ebp, ecx
jmp 0x422b54
cmp edx, esi
jne 0x422b87
mov dword [ebx + 0x98], 0xfffffffe
mov eax, dword [ebx + 0xc8]
mov dword [ebx + 0xbc], eax
call fcn.004a9697
cmp eax, 0x10004
je 0x422fe0
cmp eax, 0x10008
je 0x423050
cmp eax, 0x10005
je 0x423060
cmp eax, 0x10009
je 0x423090
cmp eax, 0x10003
je 0x4230c0
call fcn.004a9697
cmp eax, 0x10005
je 0x423130
cmp eax, 0x10002
je 0x423158
mov ecx, dword [ebx + 0x64]
test ecx, ecx
je 0x422f2b
mov eax, dword [ebx + 0xc]
test al, 0x40
jne 0x423168
mov esi, dword [ebx + 0x8c]
mov edx, dword [ebx + 0x94]
test edx, edx
je 0x4231d8
mov eax, dword [ebx + 0xbc]
cmp eax, dword [ebx + 0xc0]
je 0x423425
test eax, eax
je 0x4233b8
cmp dword [ebx + 0xc8], eax
je 0x4233d0
cmp dword [ebx + 0xcc], eax
je 0x4233d0
mov edx, dword [ebx + 0x68]
test edx, edx
je 0x422f6d
cmp dword [edx + 0x1c], eax
je 0x4233d0
call fcn.004bfa70
call fcn.004bfa70
call fcn.004bfa70
call fcn.004bfa70
call fcn.004bfa70
mov esi, dword [ebx + 0xbc]
call fcn.004bf9a0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004bec00
sub esp, 8
call fcn.004bfb30
mov edi, dword [ebx + 0xc4]
call fcn.004bfa40
mov esi, eax
call fcn.004bf9a0
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 4], str._ITEM
mov dword [esp], edi
call fcn.004bdcf0
sub esp, 0x10
jmp 0x4233f9
mov eax, dword [ebx + 0x68]
mov dword [ebx + 0x78], eax
cmp eax, esi
je 0x422e6e
mov edx, dword [ebx + 0x6c]
test edx, edx
je 0x423008
mov dword [ebx + 0x7c], 1
jmp 0x422eea
mov ebp, dword [eax + 0x18]
test ebp, ebp
jne 0x423021
cmp dword [ebx + 0x60], eax
je 0x42301e
mov dword [ebx + 0x94], 3
mov dword [ebx + 0x60], eax
test byte [ebx + 0xc], 0x20
jne 0x422eea
mov dword [ebx + 0x74], eax
mov eax, dword [ebx + 0x8c]
mov dword [ebx + 0x84], eax
mov eax, dword [ebx + 0x90]
mov dword [ebx + 0x88], eax
jmp 0x422eea
mov eax, dword [ebx + 0x68]
mov dword [ebx + 0x78], eax
jmp 0x422eea
mov edi, dword [ebx + 0x6c]
test edi, edi
je 0x422eea
mov eax, dword [ebx + 0x68]
cmp dword [ebx + 0x78], eax
jne 0x422eea
mov dword [ebx + 0x94], 2
jmp 0x422eea
mov eax, dword [ebx + 0x78]
cmp dword [ebx + 0x68], eax
jne 0x4230b4
cmp esi, eax
je 0x4230b4
mov dword [ebx + 0x94], 2
mov dword [ebx + 0x64], 0
mov dword [ebx + 0x74], 0
mov dword [ebx + 0x78], 0
jmp 0x422eea
mov esi, dword [ebx + 0x74]
test esi, esi
je 0x422eea
fild dword [ebx + 0x84]
fild dword [ebx + 0x8c]
fsubp st(1)
fstp qword [esp]
call fcn.00498440
sub esp, 8
fld dword [0x55b310]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4230fd
mov eax, dword [ebx + 0x74]
mov dword [ebx + 0x64], eax
jmp 0x422eea
fild dword [ebx + 0x88]
fild dword [ebx + 0x90]
fsubp st(1)
fstp qword [esp]
call fcn.00498440
sub esp, 8
fld qword [0x55b318]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x4230f2
jmp 0x422eea
mov dword [ebx + 0x7c], 0
mov dword [ebx + 0x64], 0
mov dword [ebx + 0x74], 0
mov dword [ebx + 0x80], 0
jmp 0x422f2b
mov dword [ebx + 0x68], 0
jmp 0x422f05
fild dword [ebx + 0x90]
fild dword [ebx + 0xd0]
fdivp st(1)
test al, 8
jne 0x4231b8
fild dword [ebx + 0xd4]
fsubrp st(1)
fstp qword [esp]
call fcn.00498420
sub esp, 8
mov esi, eax
test esi, esi
js 0x4231d0
mov eax, dword [ebx + 0xd4]
lea edx, [eax - 1]
cmp eax, esi
cmovle esi, edx
imul esi, dword [ebx + 0xa4]
add esi, dword [ebx + 0x8c]
jmp 0x422f1d
fstp qword [esp]
call fcn.00498420
sub esp, 8
mov esi, eax
jmp 0x42318f
xor esi, esi
jmp 0x4231a1
mov eax, dword [ebx + 0x64]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b64d3
sub esp, 8
lea esi, [esi]
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b60c2
sub esp, 4
test eax, eax
je 0x4232a8
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0xa4]
imul eax, dword [edx + 0x2c]
add eax, dword [edx + 0x30]
cmp eax, esi
jge 0x4231f0
mov eax, dword [ebx + 0x64]
mov dword [esp + 8], eax
add edx, 8
mov dword [esp + 4], edx
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b6518
sub esp, 0xc
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x64]
mov edx, dword [edx + 0x28]
mov dword [eax + 0x30], edx
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x64]
mov eax, dword [edx + 0x28]
add eax, dword [edx + 0x30]
mov dword [ecx + 0x28], eax
mov dword [ebx + 0x94], 4
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b670b
sub esp, 4
mov eax, dword [ebx + 0x64]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b64d3
sub esp, 8
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b6605
sub esp, 4
mov dword [ebx + 0x98], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b66d1
sub esp, 4
jmp 0x4231f0
mov eax, dword [ebx + 0x94]
test eax, eax
jne 0x422f2b
mov eax, dword [ebx + 0x64]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b64d3
sub esp, 8
jmp 0x423353
mov dword [esp + 8], ecx
add eax, 8
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b6518
sub esp, 0xc
mov eax, dword [ebx + 0x64]
mov edx, dword [ebx + 0x14]
mov edx, dword [edx + 0x30]
mov dword [eax + 0x28], edx
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x14]
mov eax, dword [edx + 0x20]
add eax, dword [edx + 0x28]
mov dword [ecx + 0x30], eax
mov dword [ebx + 0x94], 4
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b670b
sub esp, 4
mov eax, dword [ebx + 0x64]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b64d3
sub esp, 8
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b6605
sub esp, 4
mov dword [ebx + 0x98], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b66d1
sub esp, 4
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b64ed
sub esp, 4
test eax, eax
je 0x422f2b
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004b6605
sub esp, 4
mov edx, eax
mov eax, dword [ebx + 0x9c]
sub eax, 1
cmp eax, edx
jg 0x422f2b
mov ecx, dword [ebx + 0x64]
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0xa4]
imul edx, dword [eax + 0x2c]
mov edi, dword [eax + 0x30]
add edi, edx
mov edx, dword [ecx + 0x20]
mov ebp, dword [eax + 0x28]
cmp edx, ebp
cmovg edx, ebp
add edx, edi
cmp edx, esi
jle 0x423353
jmp 0x4232d0
mov dword [esp + 4], 0x5acd34
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004a1b97
sub esp, 8
jmp 0x423419
call fcn.004bfa70
call fcn.004bfa70
call fcn.004bfa70
mov esi, dword [ebx + 0xbc]
call fcn.004bf9a0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004bec00
sub esp, 8
call fcn.004bfb30
mov esi, dword [ebx]
call fcn.004bfa40
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004a1b97
sub esp, 8
call fcn.004bf9e0
mov eax, dword [ebx + 0xbc]
mov dword [ebx + 0xc0], eax
xor eax, eax
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret 4