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

Disassembly:
sub esp, 0x184
push ebx
push esi
xor eax, eax
mov dword [esp + 0x1c], 0
push edi
mov edi, dword [esp + 0x194]
xorps xmm0, xmm0
push 0x14c
push eax
mov dword [esp + 0x1c], eax
mov ebx, dword [edi + 0xc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x24], 0
movlpd qword [esp + 0x188], xmm0
movlpd qword [esp + 0x190], xmm0
call fcn.005555a0
movzx eax, word [edi + 0x6c]
lea edx, [edi + 0x70]
movzx ecx, word [edi + 0x6e]
add esp, 0xc
imul ecx, eax
mov dword [esp + 0xdc], edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x90], ebx
lea edx, [edx + ecx*2]
mov ecx, dword [esp + 0x198]
mov eax, ecx
mov dword [esp + 0x18c], edx
shr eax, 8
and ecx, 0xfffffeff
and eax, 1
mov dword [esp + 0x198], ecx
cmp word [edi + 0x66], 0
mov dword [esp + 0x154], eax
lea eax, [ebx + 0x100]
mov dword [esp + 0x34], edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x94], ecx
je 0x544a4e
test dword [edi + 0x48], 0x2000
jne 0x544a4e
xor ecx, ecx
jmp 0x544a53
mov ecx, 1
cmp word [edi + 0x64], 0
mov dword [esp + 0x9c], ecx
ja 0x544a6e
test dword [edi + 0x48], 0x2000
jne 0x544a6e
xor eax, eax
jmp 0x544a73
mov eax, 1
mov dword [esp + 0x98], eax
xor esi, esi
movzx eax, word [edi + 0x62]
dec eax
mov dword [esp + 0xb8], esi
cmp eax, 5
ja case.default.0x544a91
jmp dword [eax*4 + 0x5463f4]
mov ebx, 0xd
jmp 0x544ad5
mov ebx, 0xa
jmp 0x544ad5
mov ebx, 0xd0a
jmp 0x544ad5
mov esi, 1
mov ebx, 0xd0a
mov dword [esp + 0xb8], esi
jmp 0x544ad5
mov esi, 2
mov ebx, 0xd0a
mov dword [esp + 0xb8], esi
jmp 0x544ad5
xor ebx, ebx
movzx ecx, word [edi + 0x60]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xbc], 0x7fffffff
mov dword [esp + 0xc0], 0
push ebp
cmp ecx, 1
jne 0x544b07
mov ebp, ecx
mov dword [esp + 0xcc], ebp
jmp 0x544b1d
xor eax, eax
cmp ecx, 2
sete al
inc eax
mov dword [esp + 0x14], eax
mov ebp, eax
mov dword [esp + 0xcc], eax
mov ecx, dword [edi + 0x40]
mov eax, ecx
shr eax, 4
and eax, 1
mov dword [esp + 0xd0], 0x7fffffff
mov dword [esp + 0xd8], eax
mov eax, dword [edi + 0xc]
add eax, 0x340
mov dword [esp + 0xd4], 0
mov dword [esp + 0xdc], eax
movzx eax, word [edi + 0x6e]
mov dword [esp + 0xe4], eax
movzx eax, word [edi + 0x6c]
mov dword [esp + 0xe8], eax
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [esp + 0x14c], eax
mov eax, ecx
shr eax, 0x15
and eax, 1
mov dword [esp + 0x150], eax
mov eax, ecx
shr eax, 0x13
shr ecx, 0x11
and eax, 1
and ecx, 1
mov dword [esp + 0x154], eax
mov dword [esp + 0x15c], ecx
test eax, eax
je 0x544c13
cmp esi, 1
jne 0x544be7
mov dword [esp + 0xc0], 0x2029
mov dword [esp + 0xc4], 0xa
cmp ebp, 1
mov dword [esp + 0xd4], 0xa
mov eax, 0xd
mov ecx, 0x2029
cmove eax, ecx
mov dword [esp + 0xd0], eax
jmp 0x544c20
cmp esi, 2
jne 0x544bf9
mov dword [esp + 0xc0], 0xd
jmp 0x544c03
movzx eax, bl
mov dword [esp + 0xc0], eax
test esi, esi
jne 0x544bb8
movzx eax, bl
mov dword [esp + 0xc4], eax
jmp 0x544bc3
mov dword [esp + 0x158], 0
nop
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x78
lea edx, [edx + eax*2]
je 0x544c20
movzx eax, word [edi + 0x68]
lea ebp, [edx + 4]
push dword [edi + 8]
inc eax
mov dword [esp + 0x58], 0x14
push eax
mov eax, dword [edi]
call eax
mov ecx, eax
add esp, 8
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x544e27
movzx eax, word [edi + 0x68]
inc eax
push eax
push 1
push ecx
call fcn.005555a0
push ebp
push dword [esp + 0x48]
lea eax, [esp + 0x44]
push eax
call fcn.0052ba40
add esp, 0x18
test eax, eax
je 0x544d7c
mov edx, dword [esp + 0x19c]
cmp edx, 1
jne 0x544caa
test byte [edi + 0x48], 0x80
je 0x544ca4
test dword [edi + 0x40], 0x10000
jne 0x544ca4
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x5c], ecx
jmp 0x544cc2
mov ecx, dword [esp + 0x54]
jmp 0x544cc9
mov eax, dword [esp + 0x54]
mov dword [esp + 0x64], eax
lea ecx, [eax + 4]
mov dword [esp + 0x54], ecx
cmp edx, 2
jne 0x544cc9
mov dword [esp + 0x68], ecx
add ecx, 4
mov dword [esp + 0x54], ecx
test dword [edi + 0x40], 0x800100
je 0x544cdd
mov dword [esp + 0x6c], ecx
add ecx, 4
mov dword [esp + 0x54], ecx
cmp dword [esp + 0x74], 0
je 0x544cef
mov dword [esp + 0x74], ecx
add ecx, 4
mov dword [esp + 0x54], ecx
cmp dword [esp + 0xa4], 0
je 0x544d08
mov eax, ecx
add ecx, 4
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ecx
jmp 0x544d0c
mov eax, dword [esp + 0x58]
mov edx, ecx
test cl, 4
je 0x544d1c
lea ecx, [edx + 4]
mov dword [esp + 0x54], ecx
mov edx, ecx
test eax, eax
jne 0x544d24
mov dword [esp + 0x58], edx
cmp dword [esp + 0x78], 0
je 0x544d43
movzx eax, word [edi + 0x68]
inc eax
push eax
push 0
push dword [esp + 0x4c]
call fcn.005555a0
mov ecx, dword [esp + 0x60]
add esp, 0xc
movzx eax, word [edi + 0x68]
mov esi, ebp
sub esi, dword [esp + 0x38]
inc eax
push dword [edi + 8]
sar esi, 1
lea eax, [ecx + eax*8]
mov dword [esp + 0x54], eax
xor eax, eax
cmp dword [esp + 0xb0], eax
setne al
add eax, 4
imul eax, esi
push eax
mov eax, dword [edi]
call eax
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x544d9b
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x48]
call eax
add esp, 8
mov eax, 0xffffffd0
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x184
ret
lea ebx, [esi*4]
push ebx
push 0
push eax
call fcn.005555a0
movzx ecx, word [edi + 0x68]
add esp, 0xc
mov eax, dword [esp + 0x50]
lea eax, [eax + ecx*4]
add eax, 4
test dword [edi + 0x40], 0x80010000
mov dword [esp + 0x10], eax
jne 0x544def
cmp dword [esp + 0xb0], 0
jne 0x544def
push 1
push 0
push 0
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x48]
lea eax, [esp + 0x44]
push eax
call fcn.0053c370
add esp, 0x18
push ebp
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.005494a0
add esp, 0xc
cmp dword [esp + 0x10], 0x10000
jle 0x544e37
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x40]
call eax
push dword [edi + 8]
push dword [esp + 0x50]
mov eax, dword [edi + 4]
call eax
add esp, 0x10
pop ebp
pop edi
pop esi
mov eax, 0xffffffd0
pop ebx
add esp, 0x184
ret
cmp dword [esp + 0xac], 0
je 0x544e67
mov eax, dword [esp + 0x3c]
push esi
add eax, ebx
push 0
push eax
mov dword [esp + 0x54], eax
call fcn.005555a0
push 0
push dword [esp + 0x48]
lea eax, [esp + 0x44]
push eax
call fcn.005497f0
add esp, 0x18
push dword [edi + 8]
mov eax, dword [edi]
push 0x5c
call eax
mov esi, eax
add esp, 8
test esi, esi
je 0x5463cc
push 0x5c
push 0
push esi
call fcn.005555a0
mov dword [esi + 0x28], edi
push dword [edi + 8]
mov eax, dword [edi]
push 0x1000
call eax
mov dword [esi + 0x30], eax
push dword [edi + 8]
mov eax, dword [edi]
push 0x800
call eax
mov ecx, eax
add esp, 0x1c
mov eax, dword [esi + 0x30]
mov dword [esi + 0x34], ecx
test eax, eax
je 0x5463ad
test ecx, ecx
je 0x5463a1
cmp dword [0x737e9c], 0
mov dword [eax], 0
mov eax, dword [esi + 0x30]
mov dword [eax + 4], 0
mov eax, dword [esi + 0x34]
mov dword [eax], 0
mov eax, dword [esi + 0x34]
mov dword [eax + 4], 0
mov dword [esi + 0x38], 0xffffffff
mov dword [esi + 0x3c], 0xffffffff
mov dword [esi + 0x40], 0xffffffff
mov dword [esi + 0x44], 0xffffffff
mov dword [esi + 0x48], 0xffffffff
mov dword [esi + 0x58], 0xffffffff
jne 0x544f56
mov eax, 0x737eb7
mov dword [0x737e9c], 1
and eax, 0xfffffff0
mov dword [0x737ea4], eax
mov dword [eax], 0x80000000
mov dword [eax + 0x10], 0x7fffffff
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0x80000000
mov dword [eax + 0x30], 0xffffffff
mov dword [eax + 0x34], 0x7fffffff
push dword [esp + 0x10]
mov dword [esp + 0x34], esi
push 0
push 0
push 5
push 5
push 0x11
push 0
push esi
call fcn.00549c20
movzx eax, word [edi + 0x68]
lea eax, [eax*2 + 2]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.00548790
mov eax, dword [esp + 0x84]
add esp, 0x28
test eax, eax
je 0x544fa9
push 0
push 1
push eax
push 0x8d
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
push 0
push 0xc
push 0
push 8
push 0x20
push esi
call fcn.0054b290
push 0
push 0xc
push 0
push 1
push 0x20
push esi
call fcn.0054b290
push 4
push 0x81
push 0
push 2
push 0x20
push esi
call fcn.0054b290
add esp, 0x48
push 0xc
push 0x81
push 0
push 0xc
push 0x20
push esi
call fcn.0054b290
push 0
push 0x81
push 0
push 3
push 0x20
push esi
call fcn.0054b290
push 0x28
push 0x81
push 0
push 1
push 0x25
push esi
call fcn.0054b290
add esp, 0x48
push 4
push 0x83
push 0
push 0xb
push 0x20
push esi
call fcn.0054b290
push 8
push 0x83
push 0
push 0xa
push 0x20
push esi
call fcn.0054b290
push 1
push 0x40
push 0
push 1
push 0
push 1
push 0x60
push esi
call fcn.0054b4d0
add esp, 0x50
push 0
push 1
push 0x10
push 0x8d
push 0x20
push esi
call fcn.0054b290
mov eax, dword [esp + 0x98]
add esp, 0x18
cmp eax, dword [esp + 0x84]
jge 0x54508b
lea eax, [esp + 0x30]
push eax
call fcn.00548630
add esp, 4
mov ebx, dword [esp + 0x19c]
cmp ebx, 2
jne 0x5450af
push 0xffffffffffffffff
push 0x40
push dword [esp + 0x70]
push 0x8d
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
mov eax, dword [esp + 0x70]
test eax, eax
je 0x5450cc
push 0
push 0x40
push eax
push 0x8d
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
mov eax, dword [esp + 0x74]
test eax, eax
je 0x5450e9
push 0
push 0x40
push eax
push 0x8d
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
cmp dword [edi + 0x40], 0
jl 0x5451ee
lea eax, [esp + 0x30]
push eax
call fcn.00546510
push esi
mov dword [esp + 0x2c], eax
call fcn.0054b060
add esp, 8
mov dword [esp + 0x14], eax
test dword [edi + 0x40], 0x10000
jne 0x5451fb
cmp ebx, 1
jne 0x545135
lea eax, [esp + 0x30]
push eax
call fcn.00541dc0
add esp, 4
test eax, eax
jne 0x545200
mov eax, dword [edi + 0x48]
test al, 0x10
je 0x5451cb
mov eax, dword [esp + 0x34]
test byte [eax + 0x48], 0x20
movzx edx, word [eax + 0x58]
mov ecx, edx
je 0x5451b8
mov eax, 0xff
cmp dx, ax
ja 0x54516a
mov eax, dword [esp + 0x90]
movzx ecx, byte [ecx + eax]
cmp edx, 0x7f
jbe 0x5451b8
cmp dword [esp + 0x154], 0
jne 0x54517e
cmp dword [esp + 0x15c], 0
je 0x5451b8
mov ecx, edx
mov eax, edx
shr eax, 7
movzx eax, word [eax*2 + 0x6dcaf8]
shl eax, 7
and ecx, 0x8000007f
jns 0x54519d
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x6e0ef8]
lea eax, [eax + eax*2]
mov ax, word [eax*4 + 0x6d88ec]
add ax, dx
movzx ecx, ax
push 0
push ecx
push edx
lea eax, [esp + 0x3c]
push eax
call fcn.00541a80
add esp, 0x10
jmp 0x5451fb
test eax, 0x200
je 0x5451de
lea eax, [esp + 0x30]
push eax
call fcn.00542610
jmp 0x5451f8
test al, 0x40
je 0x5451fb
lea eax, [esp + 0x30]
push eax
call fcn.00542d40
jmp 0x5451f8
push esi
call fcn.0054b060
mov dword [esp + 0x18], eax
add esp, 4
cmp ebx, 1
jne 0x545250
cmp word [edi + 0x66], 0
jbe 0x545250
test dword [edi + 0x40], 0x10000
jne 0x545250
push 0xffffffffffffffff
push 0x40
push 0
push 1
push 0x20
push esi
call fcn.0054b290
movzx eax, word [edi + 0x66]
add eax, eax
push eax
push 0x40
push 0
push 2
push 0
push 3
push 0x60
push esi
call fcn.0054b4d0
push 0
push 0xc
push 0
push 3
push 4
push esi
call fcn.00549aa0
add esp, 0x50
mov dword [esp + 0x20], eax
cmp dword [esp + 0x5c], 0
je 0x545280
mov edx, dword [edi + 0x48]
mov ecx, edx
movzx eax, word [edi + 0x5c]
shr ecx, 4
and ecx, 1
shr edx, 8
push ecx
and edx, 1
push edx
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.005491a0
add esp, 0x10
mov dword [esp + 0x28], eax
push 0
push 2
push dword [esp + 0x5c]
push 0x8d
push 0x20
push esi
call fcn.0054b290
push 0x10
push 0x8d
push 0
push 9
push 0x20
push esi
call fcn.0054b290
mov eax, dword [esp + 0xa8]
add esp, 0x30
test eax, eax
je 0x5452cb
push 0
push 0x40
push eax
push 0x8d
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x5452fb
sub ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add ecx, 2
sar ecx, 1
push 0
push 2
mov eax, dword [eax + ecx*4]
sar eax, 3
push eax
push 0x8d
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x54]
je 0x54531a
push 0
push 2
push eax
push 0x8d
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
cmp ebx, 2
jne 0x545370
push 0xffffffffffffffff
push 0x40
push dword [esp + 0x70]
push 0x8d
push 1
push esi
call fcn.00549aa0
push 0
push 2
push dword [esp + 0x84]
mov ebx, eax
push 0x8d
push 0x20
push esi
call fcn.0054b290
push esi
call fcn.0054b060
add esp, 0x34
test ebx, ebx
je 0x54538d
test eax, eax
je 0x54538d
mov ecx, dword [ebx + 8]
and ecx, 0xfffffffd
mov dword [ebx + 0xc], eax
or ecx, 1
mov dword [ebx + 8], ecx
jmp 0x54538d
cmp ebx, 4
jne 0x54538d
push 0
push 2
push dword [esp + 0x6c]
push 0x8d
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
lea eax, [esp + 0x180]
push eax
push ebp
push dword [esp + 0x40]
lea eax, [esp + 0x3c]
push eax
call fcn.005359f0
add esp, 0x10
cmp dword [esi], 0
je 0x545402
push esi
call fcn.0054bf90
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x4c]
call eax
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x4c]
call eax
mov eax, dword [esp + 0x54]
add esp, 0x14
test eax, eax
je 0x544e27
nop dword [eax]
push dword [edi + 8]
mov esi, dword [eax]
push eax
mov eax, dword [edi + 4]
call eax
add esp, 8
mov eax, esi
test esi, esi
jne 0x5453e0
pop ebp
pop edi
lea eax, [esi - 0x30]
pop esi
pop ebx
add esp, 0x184
ret
test dword [edi + 0x40], 0x20000000
je 0x545422
push 0
push 0xc
push 0
push 2
push 1
push esi
call fcn.00549aa0
add esp, 0x18
mov ebp, eax
jmp 0x545424
xor ebp, ebp
cmp dword [esp + 0xa0], 0
je 0x545454
push dword [esp + 0x54]
push 0x8d
push 0
push 2
push 0
push esi
call fcn.00549aa0
push esi
mov dword [esp + 0x48], eax
call fcn.0054b060
add esp, 0x1c
mov dword [esp + 0x1c], eax
push esi
call fcn.0054b060
mov edx, dword [esp + 0x124]
add esp, 4
mov ebx, eax
mov dword [esp + 0xf8], ebx
test edx, edx
je 0x545491
mov ecx, dword [edx]
test ecx, ecx
je 0x54548a
test ebx, ebx
je 0x54548a
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545471
movzx eax, word [edi + 0x68]
inc eax
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0053b140
push esi
call fcn.0054b060
mov ebx, dword [esp + 0x11c]
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf0], ecx
test ebx, ebx
je 0x5454ec
mov edx, dword [ebx]
test edx, edx
je 0x5454de
test ecx, ecx
je 0x5454de
mov eax, dword [edx + 8]
and eax, 0xfffffffd
mov dword [edx + 0xc], ecx
or eax, 1
mov dword [edx + 8], eax
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x5454c5
mov ecx, dword [esp + 0xf4]
mov ebx, dword [esp + 0x118]
test ebx, ebx
je 0x54551e
mov edx, dword [ebx]
test edx, edx
je 0x545510
test ecx, ecx
je 0x545510
mov eax, dword [edx + 8]
and eax, 0xfffffffd
mov dword [edx + 0xc], ecx
or eax, 1
mov dword [edx + 8], eax
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x5454f7
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0x20]
test edx, edx
je 0x545539
test ecx, ecx
je 0x545539
mov eax, dword [edx + 8]
and eax, 0xfffffffd
mov dword [edx + 0xc], ecx
or eax, 1
mov dword [edx + 8], eax
push 9
push esi
call fcn.0054b0d0
push 0
push 1
push 0x20
push esi
call fcn.0054be40
add esp, 0x18
cmp dword [esp + 0x11c], 0
je 0x5455c9
push esi
call fcn.0054b060
mov edx, dword [esp + 0x120]
add esp, 4
mov ebx, eax
test edx, edx
je 0x545590
mov ecx, dword [edx]
test ecx, ecx
je 0x545589
test ebx, ebx
je 0x545589
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545570
push 0xffffffffffffffff
push 0x40
push 0
push 1
push 0x20
push esi
call fcn.0054b290
mov ebx, dword [esp + 0x10c]
push 0x22
push esi
call fcn.0054afd0
add esp, 0x20
test eax, eax
je 0x5455c9
test ebx, ebx
je 0x5455c9
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebx
or ecx, 1
mov dword [eax + 8], ecx
test dword [edi + 0x40], 0x20000000
je 0x5455f2
push esi
call fcn.0054b060
add esp, 4
test ebp, ebp
je 0x5455f2
test eax, eax
je 0x5455f2
mov ecx, dword [ebp + 8]
and ecx, 0xfffffffd
mov dword [ebp + 0xc], eax
or ecx, 1
mov dword [ebp + 8], ecx
mov ebx, dword [esp + 0x19c]
cmp ebx, 1
je 0x54565b
push esi
call fcn.0054b060
mov edx, dword [esp + 0x110]
add esp, 4
mov ebx, eax
mov dword [esp + 0xec], ebx
test edx, edx
je 0x545640
nop dword [eax + eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x545639
test ebx, ebx
je 0x545639
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545620
push dword [esp + 0xf0]
lea eax, [esp + 0x34]
push eax
call fcn.005488a0
mov ebx, dword [esp + 0x1a4]
add esp, 8
cmp dword [esp + 0xa0], 0
je 0x545672
push esi
call fcn.0054b060
add esp, 4
mov dword [esp + 0x18], eax
push dword [esp + 0x188]
lea eax, [esp + 0x34]
push eax
call fcn.0052e420
add esp, 8
cmp dword [esi], 0
push esi
je 0x5456da
call fcn.0054bf90
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x4c]
call eax
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x4c]
call eax
mov eax, dword [esp + 0x54]
add esp, 0x14
test eax, eax
je 0x544e27
push dword [edi + 8]
mov esi, dword [eax]
push eax
mov eax, dword [edi + 4]
call eax
add esp, 8
mov eax, esi
test esi, esi
jne 0x5456b8
pop ebp
pop edi
lea eax, [esi - 0x30]
pop esi
pop ebx
add esp, 0x184
ret
call fcn.0054b060
add esp, 4
mov ebp, eax
cmp ebx, 2
jne 0x545765
push 0
push 0x40
push dword [esp + 0x70]
push 0x8d
push 1
push esi
call fcn.00549aa0
push dword [esp + 0x70]
mov ebx, eax
push 0x8d
push 0
push 1
push 0x20
push esi
call fcn.0054b290
push 0xffffffffffffffff
push 0x40
push dword [esp + 0x9c]
push 0x8d
push 0x20
push esi
call fcn.0054b290
add esp, 0x48
push 0
push 1
push dword [esp + 0x70]
push 0x8d
push 0x20
push esi
call fcn.0054b290
push esi
call fcn.0054b060
add esp, 0x1c
test ebx, ebx
je 0x545765
test eax, eax
je 0x545765
mov ecx, dword [ebx + 8]
and ecx, 0xfffffffd
mov dword [ebx + 0xc], eax
or ecx, 1
mov dword [ebx + 8], ecx
cmp dword [edi + 0x40], 0
jl 0x545788
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x545788
push eax
push 0x8d
push 0
push 1
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x5457a5
sub ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add ecx, 2
sar ecx, 1
mov eax, dword [eax + ecx*4]
sar eax, 3
jmp 0x5457a9
mov eax, dword [esp + 0x58]
push eax
push 0x8d
push 0
push 2
push 0x20
push esi
call fcn.0054b290
mov eax, dword [edi + 0x40]
add esp, 0x18
test eax, eax
js 0x5458a9
mov ebx, dword [esp + 0xfc]
test ebx, ebx
je 0x54586a
test eax, 0x100
jne 0x5458a9
cmp dword [esp + 0x6c], 0
push 0
push 0xc
push 0
je 0x545850
push 4
push 0x20
push esi
call fcn.0054b290
push 0
push 1
push 0
push 0xc
push 0x20
push esi
call fcn.0054b290
mov ebx, dword [esp + 0x12c]
push 0
push 1
push 0
push 2
push 2
push esi
call fcn.00549aa0
add esp, 0x48
test eax, eax
je 0x54583b
test ebx, ebx
je 0x54583b
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebx
or ecx, 1
mov dword [eax + 8], ecx
push 0
push 4
push 0
push 0xc
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
jmp 0x5458a9
push 2
push 2
push esi
call fcn.00549aa0
add esp, 0x18
test eax, eax
je 0x5458a9
test ebx, ebx
je 0x5458a9
mov dword [eax + 0xc], ebx
jmp 0x54589d
cmp dword [esp + 0x6c], 0
mov ecx, 0xc
push 0
mov eax, 1
cmove eax, ecx
push eax
push 0
push 2
push 2
push esi
call fcn.00549aa0
add esp, 0x18
test eax, eax
je 0x5458a9
mov edx, dword [esp + 0x24]
test edx, edx
je 0x5458a9
mov dword [eax + 0xc], edx
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
or ecx, 1
mov dword [eax + 8], ecx
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x5458e0
push esi
call fcn.0054b060
add esp, 4
mov edx, eax
nop dword [eax]
mov ecx, dword [ebx]
test ecx, ecx
je 0x5458d9
test edx, edx
je 0x5458d9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edx
or eax, 1
mov dword [ecx + 8], eax
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x5458c0
cmp dword [esp + 0x19c], 2
jne 0x545920
mov ebx, dword [esp + 0xec]
push 0xffffffffffffffff
push 0x40
push dword [esp + 0x70]
push 0x8d
push 1
push esi
call fcn.00549aa0
add esp, 0x18
test eax, eax
je 0x545920
test ebx, ebx
je 0x545920
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebx
or ecx, 1
mov dword [eax + 8], ecx
push 0xffffffffffffffff
push 0x40
push 0
push 1
push 0x20
push esi
call fcn.0054b290
mov ebx, dword [esp + 0x108]
push 0x22
push esi
call fcn.0054afd0
add esp, 0x20
test eax, eax
je 0x545959
test ebx, ebx
je 0x545959
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebx
or ecx, 1
mov dword [eax + 8], ecx
lea eax, [esp + 0x30]
push eax
call fcn.00543540
add esp, 4
cmp dword [esp + 0xa0], 0
je 0x545aab
push esi
call fcn.0054b060
mov edx, dword [esp + 0x30]
add esp, 4
test edx, edx
je 0x545998
test eax, eax
je 0x545998
mov ecx, dword [edx + 8]
and ecx, 0xfffffffd
mov dword [edx + 0xc], eax
or ecx, 1
mov dword [edx + 8], ecx
push 0
push 8
push 0
push 1
push 0x20
push esi
call fcn.0054b290
push 0x30
push 0x81
push 0
push 3
push 0x25
push esi
call fcn.0054b290
add esp, 0x30
cmp dword [esi], 0
jne 0x5459dd
push 0
push 3
push 4
push 0x40
push 1
push esi
call fcn.00540380
add esp, 0x18
test eax, eax
je 0x5459dd
mov byte [eax], 0xf7
push 1
push esi
call fcn.0054afd0
mov ebx, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x545a03
test ebx, ebx
je 0x545a03
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebx
or ecx, 1
mov dword [eax + 8], ecx
cmp dword [esi], 0
jne 0x545a22
push 0
push 3
push 8
push 0x40
push 1
push esi
call fcn.00540380
add esp, 0x18
test eax, eax
je 0x545a22
mov byte [eax], 0xf7
push 0
push esi
call fcn.0054afd0
add esp, 8
test eax, eax
je 0x545a48
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x545a48
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edx
or ecx, 1
mov dword [eax + 8], ecx
push 4
push 0x81
push 0
push 3
push 0x20
push esi
call fcn.0054b290
push 0
push 2
push 0
push 3
push 1
push esi
call fcn.00549aa0
add esp, 0x30
test eax, eax
je 0x545a89
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x545a89
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edx
or ecx, 1
mov dword [eax + 8], ecx
push 0x22
push esi
call fcn.0054afd0
add esp, 8
test eax, eax
je 0x545aab
test ebx, ebx
je 0x545aab
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebx
or ecx, 1
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x104]
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x108], eax
mov dword [esp + 0xb4], 1
test eax, eax
je 0x545bc2
mov eax, dword [esp + 0x10]
push dword [edi + 8]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, 7
sar eax, 3
mov dword [esp + 0x8c], eax
push eax
mov eax, dword [edi]
call eax
add esp, 8
mov dword [esp + 0x8c], eax
test eax, eax
je 0x545b66
lea eax, [esp + 0x30]
push eax
call fcn.00536360
add esp, 4
cmp dword [esi], 0
jne 0x545b54
lea eax, [esp + 0x30]
push eax
call fcn.00543540
mov eax, dword [esp + 0x10c]
add esp, 4
mov eax, dword [eax]
mov dword [esp + 0x108], eax
test eax, eax
jne 0x545b21
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x90]
call eax
add esp, 8
cmp dword [esp + 0x108], 0
je 0x545bc2
push esi
call fcn.0054bf90
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x4c]
call eax
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x4c]
call eax
mov eax, dword [esp + 0x54]
add esp, 0x14
test eax, eax
je 0x544e27
nop dword [eax]
push dword [edi + 8]
mov esi, dword [eax]
push eax
mov eax, dword [edi + 4]
call eax
add esp, 8
mov eax, esi
test esi, esi
jne 0x545ba0
pop ebp
pop edi
lea eax, [esi - 0x30]
pop esi
pop ebx
add esp, 0x184
ret
push esi
mov dword [esp + 0xb8], 0
mov dword [esp + 0xf4], ebx
call fcn.0054b060
mov edx, dword [esp + 0x12c]
add esp, 4
mov ebx, eax
test edx, edx
je 0x545c10
nop word [eax + eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x545c09
test ebx, ebx
je 0x545c09
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545bf0
cmp dword [esi], 0
jne 0x545c32
push 0x20
push 0x8d
push 0
push 0
push 1
push esi
call fcn.00540380
add esp, 0x18
test eax, eax
je 0x545c32
mov byte [eax], 0x8f
push 0
push 2
push 4
push 0x8d
push 0x20
push esi
call fcn.0054b290
push 0
push 8
push 0
push 1
push 0x20
push esi
call fcn.0054b290
push 0x2000
push 0x40
push 0
push 0xa
push 0
push 2
push 0x62
push esi
call fcn.0054b4d0
add esp, 0x50
push 0
push 0x81
push 0
push 1
push 0x20
push esi
call fcn.0054b290
push 0
push 3
push 0
push 0xa
push 0x20
push esi
call fcn.0054b290
push fcn.0054c680
push 0x40
push 0x111
push 0x24
push esi
call fcn.0054a910
add esp, 0x44
push 0
push 0x40
push 0
push 1
push 0
push esi
call fcn.00549aa0
push 0
push 0xa
push 0
push 3
push 0x20
push esi
mov ebx, eax
call fcn.0054b290
push 0
push 1
push 0
push 0xa
push 0x20
push esi
call fcn.0054b290
add esp, 0x48
push 0
push 0x8d
push 0
push 1
push 0x20
push esi
call fcn.0054b290
push 4
push 0x8d
push 0
push 2
push 0x20
push esi
call fcn.0054b290
push 0
push 1
push 0x80
push esi
call fcn.0054bc10
add esp, 0x40
push esi
call fcn.0054b060
add esp, 4
test ebx, ebx
je 0x545d36
test eax, eax
je 0x545d36
mov ecx, dword [ebx + 8]
and ecx, 0xfffffffd
mov dword [ebx + 0xc], eax
or ecx, 1
mov dword [ebx + 8], ecx
push 0xffffffffffffffd2
push 0x40
push 0
push 1
push 0x20
push esi
call fcn.0054b290
mov ebx, dword [esp + 0x108]
push 0x22
push esi
call fcn.0054afd0
add esp, 0x20
test eax, eax
je 0x545d6f
test ebx, ebx
je 0x545d6f
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebx
or ecx, 1
mov dword [eax + 8], ecx
push esi
call fcn.0054b060
mov edx, dword [esp + 0x128]
add esp, 4
mov ebx, eax
test edx, edx
je 0x545da5
mov ecx, dword [edx]
test ecx, ecx
je 0x545d9e
test ebx, ebx
je 0x545d9e
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545d85
push 0xffffffffffffffd1
push 0x40
push 0
push 1
push 0x20
push esi
call fcn.0054b290
mov ebx, dword [esp + 0x108]
push 0x22
push esi
call fcn.0054afd0
add esp, 0x20
test eax, eax
je 0x545dde
test ebx, ebx
je 0x545dde
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebx
or ecx, 1
mov dword [eax + 8], ecx
cmp dword [esp + 0x12c], 0
je 0x545e2d
push esi
call fcn.0054b060
mov edx, dword [esp + 0x130]
add esp, 4
mov ebx, eax
test edx, edx
je 0x545e20
nop
mov ecx, dword [edx]
test ecx, ecx
je 0x545e19
test ebx, ebx
je 0x545e19
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545e00
lea eax, [esp + 0x30]
push eax
call fcn.0053db10
add esp, 4
cmp dword [esp + 0x130], 0
je 0x545e7d
push esi
call fcn.0054b060
mov edx, dword [esp + 0x134]
add esp, 4
mov ebx, eax
test edx, edx
je 0x545e70
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x545e69
test ebx, ebx
je 0x545e69
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545e50
lea eax, [esp + 0x30]
push eax
call fcn.0052c0b0
add esp, 4
cmp dword [esp + 0x134], 0
je 0x545ecd
push esi
call fcn.0054b060
mov edx, dword [esp + 0x138]
add esp, 4
mov ebx, eax
test edx, edx
je 0x545ec0
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x545eb9
test ebx, ebx
je 0x545eb9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545ea0
lea eax, [esp + 0x30]
push eax
call fcn.0052b5b0
add esp, 4
cmp dword [esp + 0x138], 0
je 0x545f1d
push esi
call fcn.0054b060
mov edx, dword [esp + 0x13c]
add esp, 4
mov ebx, eax
test edx, edx
je 0x545f10
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x545f09
test ebx, ebx
je 0x545f09
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545ef0
lea eax, [esp + 0x30]
push eax
call fcn.0052b6d0
add esp, 4
cmp dword [esp + 0x13c], 0
je 0x545f6d
push esi
call fcn.0054b060
mov edx, dword [esp + 0x140]
add esp, 4
mov ebx, eax
test edx, edx
je 0x545f60
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x545f59
test ebx, ebx
je 0x545f59
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545f40
lea eax, [esp + 0x30]
push eax
call fcn.0052b5b0
add esp, 4
cmp dword [esp + 0x140], 0
je 0x545fbd
push esi
call fcn.0054b060
mov edx, dword [esp + 0x144]
add esp, 4
mov ebx, eax
test edx, edx
je 0x545fb0
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x545fa9
test ebx, ebx
je 0x545fa9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545f90
lea eax, [esp + 0x30]
push eax
call fcn.0053ce20
add esp, 4
cmp dword [esp + 0x144], 0
je 0x54600d
push esi
call fcn.0054b060
mov edx, dword [esp + 0x148]
add esp, 4
mov ebx, eax
test edx, edx
je 0x546000
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x545ff9
test ebx, ebx
je 0x545ff9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x545fe0
lea eax, [esp + 0x30]
push eax
call fcn.0053cfa0
add esp, 4
cmp dword [esp + 0x148], 0
je 0x5460c7
push esi
call fcn.0054b060
mov edx, dword [esp + 0x14c]
add esp, 4
mov ebx, eax
test edx, edx
je 0x546051
mov ecx, dword [edx]
test ecx, ecx
je 0x54604a
test ebx, ebx
je 0x54604a
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x546031
movzx eax, word [edi + 0x68]
lea eax, [eax*2 + 2]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0053d970
push 0
push 1
push 0
push 2
push 4
push esi
call fcn.00549aa0
add esp, 0x20
test eax, eax
je 0x546095
mov edx, dword [esp + 0x14]
test edx, edx
je 0x546095
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edx
or ecx, 1
mov dword [eax + 8], ecx
push 0
push 1
push 0
push 2
push 0x20
push esi
call fcn.0054b290
push 0x22
push esi
call fcn.0054afd0
add esp, 0x20
test eax, eax
je 0x5460c7
test ebp, ebp
je 0x5460c7
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebp
or ecx, 1
mov dword [eax + 8], ecx
cmp dword [esp + 0x16c], 0
je 0x546114
push esi
call fcn.0054b060
mov edx, dword [esp + 0x170]
add esp, 4
mov ebx, eax
test edx, edx
je 0x546107
mov ecx, dword [edx]
test ecx, ecx
je 0x546100
test ebx, ebx
je 0x546100
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5460e7
lea eax, [esp + 0x30]
push eax
call fcn.0053e180
add esp, 4
cmp dword [esp + 0x170], 0
je 0x546161
push esi
call fcn.0054b060
mov edx, dword [esp + 0x174]
add esp, 4
mov ebx, eax
test edx, edx
je 0x546154
mov ecx, dword [edx]
test ecx, ecx
je 0x54614d
test ebx, ebx
je 0x54614d
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x546134
lea eax, [esp + 0x30]
push eax
call fcn.0053e370
add esp, 4
cmp dword [esp + 0x174], 0
je 0x5461ae
push esi
call fcn.0054b060
mov edx, dword [esp + 0x178]
add esp, 4
mov ebx, eax
test edx, edx
je 0x5461a1
mov ecx, dword [edx]
test ecx, ecx
je 0x54619a
test ebx, ebx
je 0x54619a
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x546181
lea eax, [esp + 0x30]
push eax
call fcn.0053dd80
add esp, 4
cmp dword [esp + 0x178], 0
je 0x5461fd
push esi
call fcn.0054b060
mov edx, dword [esp + 0x17c]
add esp, 4
mov ebx, eax
test edx, edx
je 0x5461f0
nop
mov ecx, dword [edx]
test ecx, ecx
je 0x5461e9
test ebx, ebx
je 0x5461e9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5461d0
lea eax, [esp + 0x30]
push eax
call fcn.0053df50
add esp, 4
cmp dword [esp + 0x164], 0
je 0x54624d
push esi
call fcn.0054b060
mov edx, dword [esp + 0x168]
add esp, 4
mov ebx, eax
test edx, edx
je 0x546240
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x546239
test ebx, ebx
je 0x546239
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x546220
lea eax, [esp + 0x30]
push eax
call fcn.0053d6e0
add esp, 4
cmp dword [esp + 0x168], 0
je 0x54629d
push esi
call fcn.0054b060
mov edx, dword [esp + 0x16c]
add esp, 4
mov ebx, eax
test edx, edx
je 0x546290
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x546289
test ebx, ebx
je 0x546289
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebx
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x546270
lea eax, [esp + 0x30]
push eax
call fcn.0053d800
add esp, 4
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x48]
call eax
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x48]
call eax
push esi
call fcn.0054c160
mov ebp, dword [esi + 0x54]
mov ebx, eax
push esi
call fcn.0054bf90
add esp, 0x18
test ebx, ebx
jne 0x546302
mov eax, dword [esp + 0x40]
test eax, eax
je 0x544e27
nop dword [eax]
push dword [edi + 8]
mov esi, dword [eax]
push eax
mov eax, dword [edi + 4]
call eax
add esp, 8
mov eax, esi
test esi, esi
jne 0x5462e0
pop ebp
pop edi
lea eax, [esi - 0x30]
pop esi
pop ebx
add esp, 0x184
ret
mov esi, dword [edi + 0x10]
test esi, esi
jne 0x546370
push dword [edi + 8]
mov eax, dword [edi]
push 0x2c
call eax
mov esi, eax
add esp, 8
test esi, esi
jne 0x546352
push ebx
call fcn.0054bff0
mov eax, dword [esp + 0x44]
add esp, 4
test eax, eax
je 0x544e27
push dword [edi + 8]
mov esi, dword [eax]
push eax
mov eax, dword [edi + 4]
call eax
add esp, 8
mov eax, esi
test esi, esi
jne 0x546330
pop ebp
pop edi
lea eax, [esi - 0x30]
pop esi
pop ebx
add esp, 0x184
ret
push 0x2c
push 0
push esi
call fcn.005555a0
movzx eax, word [edi + 0x68]
add esp, 0xc
inc eax
mov dword [esi + 0x24], eax
mov eax, dword [edi + 0x50]
mov dword [esi + 0x28], eax
mov dword [edi + 0x10], esi
mov eax, dword [esp + 0x19c]
xor ecx, ecx
cmp eax, 1
je 0x546385
cmp eax, 2
setne cl
inc ecx
mov dword [esi + ecx*4], ebx
mov eax, dword [esp + 0x40]
mov dword [esi + ecx*4 + 0x18], ebp
pop ebp
pop edi
mov dword [esi + ecx*4 + 0xc], eax
xor eax, eax
pop esi
pop ebx
add esp, 0x184
ret
push dword [edi + 8]
push eax
mov eax, dword [edi + 4]
call eax
add esp, 8
mov eax, dword [esi + 0x34]
test eax, eax
je 0x5463c0
push dword [edi + 8]
push eax
mov eax, dword [edi + 4]
call eax
add esp, 8
push dword [edi + 8]
mov eax, dword [edi + 4]
push esi
call eax
add esp, 8
push dword [edi + 8]
mov eax, dword [edi + 4]
push dword [esp + 0x48]
call eax
push dword [edi + 8]
push dword [esp + 0x48]
jmp 0x544e1f
pop edi
pop esi
mov eax, 0xffffffd4
pop ebx
add esp, 0x184
ret