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

Disassembly:
sub esp, 0x84
push ebx
push ebp
mov ebp, dword [esp + 0x90]
push esi
mov esi, dword [esp + 0x9c]
mov dword [esp + 0xc], esi
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], ecx
test ebx, ebx
jne 0x455889
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret
push edi
mov edi, dword [esp + 0x9c]
test edi, edi
je case.0x4558b5.101
movzx eax, byte [edi]
mov dword [esp + 0x24], eax
add eax, 0xffffffed
cmp eax, 0x8c
ja case.0x4558b5.21
movzx eax, byte [eax + 0x456858]
jmp dword [eax*4 + 0x4567f4]
mov edx, dword [edi + 0x24]
movsx eax, word [edi + 0x1e]
cmp byte [edx], 0
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0x1c]
jne 0x4558df
mov edi, dword [eax + ecx*8 + 0x10]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
cmp byte [edx + 1], 0
je case.0x4558b5.154
push esi
push dword [eax + ecx*8 + 0xc]
push dword [edx + 8]
push 0x2f
push ebx
call fcn.00475560
add esp, 0x14
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov ecx, dword [edi + 0x18]
test ecx, ecx
jns 0x45592b
mov eax, dword [ebp + 0x5c]
test eax, eax
jle 0x455928
movsx edi, word [edi + 0x1c]
add edi, eax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov ecx, dword [ebp + 0x60]
movzx eax, byte [edi + 0x22]
push eax
movsx eax, word [edi + 0x1c]
push esi
push ecx
push eax
push dword [edi + 0x28]
push ebp
call fcn.00454e20
add esp, 0x18
mov edi, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
push esi
push 0
push edi
push ebp
call fcn.00426420
add esp, 0x10
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
push esi
push 0
push dword [edi + 8]
push ebx
call fcn.00428180
add esp, 0x10
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
push 0
push dword [edi + 8]
push 0
push esi
push 0
push 0x61
push ebx
call fcn.004755d0
add esp, 0x1c
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov eax, dword [edi + 8]
add eax, 2
mov esi, eax
jne 0x4559bc
xor esi, esi
jmp 0x4559cf
cmp byte [eax], 0
je 0x4559c7
inc esi
cmp byte [esi], 0
jne 0x4559c1
sub esi, eax
and esi, 0x3fffffff
dec esi
push esi
push eax
push dword [ebx]
call fcn.0045d9d0
push 0xffffffffffffffff
push eax
push 0
push dword [esp + 0xb8]
mov eax, esi
cdq
sub eax, edx
sar eax, 1
push eax
push 0x1e
push ebx
call fcn.004755d0
add esp, 0x28
mov edi, dword [esp + 0x10]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
movsx eax, word [edi + 0x1c]
push esi
push eax
push 0x1f
push ebx
call fcn.00475540
mov eax, dword [edi + 8]
add esp, 0x10
cmp byte [eax + 1], 0
je 0x45595d
movsx ecx, word [edi + 0x1c]
mov eax, dword [ebp + 0x1d8]
mov edx, dword [ebx + 4]
mov edi, dword [eax + ecx*4 - 4]
mov ecx, dword [ebx]
test edx, edx
je 0x45595d
cmp byte [ecx + 0x41], 0
jne 0x45595d
mov eax, dword [ebx + 0x20]
dec eax
lea eax, [eax + eax*4]
push dword [edx + eax*4 + 0x10]
lea esi, [edx + eax*4]
movsx eax, byte [esi + 1]
push eax
push ecx
call fcn.00433490
add esp, 0xc
test edi, edi
jne 0x455a84
mov dword [esi + 0x10], edi
mov edi, dword [esp + 0x10]
mov eax, edi
pop edi
mov byte [esi + 1], 0
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov dword [esi + 0x10], edi
mov edi, dword [esp + 0x10]
mov eax, edi
pop edi
mov byte [esi + 1], 0xfe
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov edi, dword [edi + 0x18]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
push esi
push dword [edi + 0xc]
push ebp
call fcn.00455840
add esp, 0xc
mov edi, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
push esi
push dword [edi + 0xc]
push ebp
call fcn.00455840
add esp, 0xc
mov dword [esp + 0x10], eax
cmp eax, esi
je 0x455aec
push esi
push eax
push 0x22
push ebx
call fcn.00475540
add esp, 0x10
mov dword [esp + 0x10], esi
push 0
push dword [edi + 8]
call fcn.00448350
movsx eax, al
push eax
push esi
push 0x28
push ebx
call fcn.00475540
mov edi, dword [esp + 0x28]
push 1
push edi
push ebp
call fcn.00454710
add esp, 0x24
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
lea eax, [esp + 0x20]
push eax
push dword [edi + 0xc]
push ebp
call fcn.004568f0
mov esi, eax
lea eax, [esp + 0x20]
push eax
push dword [edi + 0x10]
push ebp
call fcn.004568f0
push 0x20
push dword [esp + 0xbc]
push eax
push esi
push dword [esp + 0x4c]
push dword [edi + 0x10]
push dword [edi + 0xc]
push ebp
call fcn.00425f60
mov esi, dword [esp + 0xd8]
add esp, 0x38
jmp 0x4563c9
lea eax, [esp + 0x20]
push eax
push dword [edi + 0xc]
push ebp
call fcn.004568f0
mov esi, eax
lea eax, [esp + 0x20]
push eax
push dword [edi + 0x10]
push ebp
call fcn.004568f0
push 0xa0
push dword [esp + 0xbc]
push eax
xor eax, eax
cmp dword [esp + 0x48], 0x49
push esi
sete al
add eax, 0x4e
push eax
jmp 0x455b4d
lea eax, [esp + 0x20]
push eax
push dword [edi + 0xc]
push ebp
call fcn.004568f0
mov esi, eax
lea eax, [esp + 0x20]
push eax
push dword [edi + 0x10]
push ebp
call fcn.004568f0
push dword [esp + 0xb8]
push esi
push eax
push dword [esp + 0x48]
push ebx
call fcn.00475560
mov esi, dword [esp + 0xcc]
add esp, 0x2c
jmp 0x4563c9
mov eax, dword [edi + 0xc]
mov cl, byte [eax]
cmp cl, 0x84
jne 0x455bfd
push esi
push 1
push eax
push ebp
call fcn.00426420
jmp 0x4563c6
cmp cl, 0x85
jne 0x455c13
push esi
push 1
push dword [eax + 8]
push ebx
call fcn.00428180
jmp 0x4563c6
lea eax, [esp + 0x20]
mov byte [esp + 0x3c], 0x84
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x44], 0x4400
push eax
push ebp
mov dword [esp + 0x50], 0
call fcn.004568f0
mov esi, eax
lea eax, [esp + 0x20]
push eax
push dword [edi + 0xc]
push ebp
call fcn.004568f0
push dword [esp + 0xb8]
push esi
push eax
push 0x5a
push ebx
call fcn.00475560
mov esi, dword [esp + 0xcc]
add esp, 0x2c
jmp 0x4563c9
lea eax, [esp + 0x20]
push eax
push dword [edi + 0xc]
push ebp
call fcn.004568f0
push esi
push eax
push dword [esp + 0x38]
push ebx
call fcn.00475540
add esp, 0x1c
jmp 0x4563c9
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
mov edx, ecx
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x455cb1
push 1
push ebx
call fcn.00436000
add esp, 8
test eax, eax
jne 0x455ce4
mov edx, dword [ebx + 0x20]
mov ecx, dword [esp + 0x1c]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [esp + 0x20]
push eax
push dword [edi + 0xc]
push ebp
call fcn.004568f0
push eax
push dword [esp + 0x34]
push ebx
call fcn.004754d0
mov ecx, dword [ebx + 0x18]
add esp, 0x18
mov edi, dword [ebx + 0x20]
mov dword [esp + 0x1c], eax
cmp dword [ecx + 0x54], edi
jg 0x455d1e
push 1
push ebx
call fcn.00436000
add esp, 8
test eax, eax
jne 0x455d4e
mov eax, dword [ebx + 4]
lea ecx, [edi + edi*4]
inc dword [ebx + 0x20]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x1c]
push ebx
call fcn.0047e300
add esp, 8
jmp 0x4563c9
mov eax, dword [edi + 0x24]
test eax, eax
jne 0x455d87
push dword [edi + 8]
push str.misuse_of_aggregate:__s__
push ebp
call fcn.00453ae0
add esp, 0xc
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
movsx ecx, word [edi + 0x1e]
mov eax, dword [eax + 0x28]
add ecx, ecx
mov edi, dword [eax + ecx*8 + 8]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
test dword [edi + 4], 0x4000
mov al, byte [ecx + 0x3e]
mov dword [esp + 0x1c], 0
mov byte [esp + 0x24], al
mov dword [esp + 0x28], 0
je 0x455dde
mov dword [esp + 0x20], 0
xor ecx, ecx
mov edx, dword [edi + 8]
mov eax, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], edx
test edx, edx
jne 0x455ded
jmp 0x455dff
mov eax, dword [edi + 0x14]
mov dword [esp + 0x20], eax
test eax, eax
je 0x455dc9
mov ecx, dword [eax]
jmp 0x455dcb
cmp byte [edx], 0
je 0x455df8
inc eax
cmp byte [eax], 0
jne 0x455df2
sub eax, edx
and eax, 0x3fffffff
push 0
push dword [esp + 0x28]
mov dword [esp + 0x20], eax
push ecx
push eax
push edx
push dword [esp + 0x40]
call fcn.004582e0
add esp, 0x18
mov dword [esp + 0x24], eax
test eax, eax
je 0x456156
cmp dword [eax + 0xc], 0
je 0x456156
movzx eax, word [eax + 2]
test eax, 0x200
je 0x455f18
push ebx
call fcn.0047e730
mov edi, dword [esp + 0x24]
push esi
mov dword [esp + 0x30], eax
mov ecx, dword [edi + 4]
push dword [ecx]
push ebp
call fcn.00454980
mov ecx, dword [esp + 0x24]
add esp, 0x10
cmp ecx, 1
jle 0x455efc
dec ecx
mov dword [esp + 0x2c], 0x18
mov dword [esp + 0x1c], ecx
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x18], ecx
cmp dword [eax + 0x54], ecx
jg 0x455e96
push 1
push ebx
call fcn.00436000
add esp, 8
test eax, eax
jne 0x455ec6
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x28]
mov word [eax + ecx*4], 0x4d
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 1
push esi
push ebp
call fcn.00454710
inc dword [ebp + 0x64]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x38]
push esi
push dword [eax + ecx]
push ebp
call fcn.00454980
push ebp
call fcn.004546c0
add dword [esp + 0x48], 0x18
add esp, 0x1c
sub dword [esp + 0x1c], 1
jne 0x455e74
push dword [esp + 0x28]
push ebx
call fcn.004807a0
add esp, 8
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
test eax, 0x400
je 0x455f41
mov eax, dword [esp + 0x20]
push esi
mov eax, dword [eax + 4]
push dword [eax]
push ebp
call fcn.00454980
add esp, 0xc
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x18], eax
test ecx, ecx
jle 0x456018
mov esi, dword [esp + 0x20]
xor edi, edi
xor ebx, ebx
nop dword [eax + eax]
cmp eax, 0x20
jae 0x455fc6
mov eax, dword [esi + 4]
xorps xmm0, xmm0
movups xmmword [esp + 0x68], xmm0
mov dword [esp + 0x80], 0
movq qword [esp + 0x78], xmm0
push dword [eax + edi]
lea eax, [esp + 0x6c]
mov byte [esp + 0x80], 1
push eax
mov dword [esp + 0x70], 0x42f250
mov dword [esp + 0x74], 0x447230
mov dword [esp + 0x88], 0
call fcn.00482c40
mov eax, dword [esp + 0x20]
add esp, 8
cmp byte [esp + 0x7c], 0
mov ecx, dword [esp + 0x14]
je 0x455fc6
bts ebx, eax
mov edx, dword [esp + 0x24]
test byte [edx + 2], 0x20
je 0x455ff2
cmp dword [esp + 0x28], 0
jne 0x455ff2
mov eax, dword [esi + 4]
push dword [eax + edi]
push ebp
call fcn.00456a00
mov ecx, dword [esp + 0x1c]
add esp, 8
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
inc eax
add edi, 0x18
mov dword [esp + 0x18], eax
cmp eax, ecx
jl 0x455f60
mov edi, dword [esp + 0x9c]
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
test edx, edx
je 0x45609a
cmp dword [esp + 0x1c], 0
je 0x45603f
mov eax, dword [ebp + 0x48]
lea esi, [eax + 1]
add eax, ecx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0xa0]
mov dword [ebp + 0x48], eax
jmp 0x456051
push ecx
push ebp
call fcn.0045cb20
mov edx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x45607b
mov ecx, dword [edx + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
mov cl, byte [ecx]
cmp cl, 0x9a
je 0x456072
cmp cl, 0x9c
jne 0x45607b
mov ecx, dword [esp + 0x38]
and al, 0xc0
mov byte [ecx + 0x22], al
inc dword [ebp + 0x64]
push 3
push dword [esp + 0x1c]
push edx
push ebp
call fcn.00454b40
push ebp
call fcn.004546c0
mov edx, dword [esp + 0x34]
add esp, 0x14
jmp 0x4560a2
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 2
jl 0x4560cc
test byte [edi + 4], 0x80
je 0x4560d0
mov eax, dword [edx + 4]
push dword [eax + 0x18]
push ecx
push dword [esp + 0x2c]
push dword [esp + 0x38]
call fcn.00481a60
add esp, 0x10
mov edi, eax
jmp 0x4560db
test ecx, ecx
jle 0x4560d7
mov eax, dword [edx + 4]
push dword [eax]
jmp 0x4560b7
mov edi, dword [esp + 0x24]
test byte [edi + 2], 0x20
je 0x456104
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4560f0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 8]
push 0xfffffffffffffffc
push eax
push 0
push 0
push 0
push 0x24
push ebx
call fcn.004755d0
add esp, 0x1c
push 0xfffffffffffffffb
push edi
mov edi, dword [esp + 0x24]
push esi
push dword [esp + 0x24]
push edi
push 1
push ebx
call fcn.004755d0
mov esi, dword [esp + 0x30]
push esi
push ebx
call fcn.00475a00
add esp, 0x24
test esi, esi
je 0x4559f8
test edi, edi
jne 0x4559f8
push esi
push dword [esp + 0x1c]
push ebp
call fcn.0046a960
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
push dword [esp + 0x30]
push dword [esp + 0x1c]
push str.unknown_function:__.s__
push ebp
call fcn.00453ae0
add esp, 0x10
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
push 0
push 0
push edi
push ebp
call fcn.0044ef20
add esp, 0x10
mov edi, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
push ebx
call fcn.0047e730
push ebx
mov dword [esp + 0x24], eax
call fcn.0047e730
mov ecx, dword [ebx + 0x18]
add esp, 8
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x28], eax
mov eax, edx
mov dword [esp + 0x30], edx
cmp dword [ecx + 0x54], edx
jg 0x4561d4
push 1
push ebx
call fcn.00436000
add esp, 8
test eax, eax
jne 0x456205
mov eax, dword [ebx + 0x20]
mov edx, dword [esp + 0x30]
inc eax
lea ecx, [edx + edx*4]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x28]
push dword [esp + 0x20]
push edi
push ebp
call fcn.00455040
mov eax, dword [ebx + 0x18]
add esp, 0x10
mov edi, dword [ebx + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x456236
push 1
push ebx
call fcn.00436000
add esp, 8
test eax, eax
jne 0x456269
mov ecx, dword [ebx + 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x1c]
push ebx
call fcn.004807a0
mov eax, dword [ebx + 0x18]
add esp, 8
mov edi, dword [ebx + 0x20]
cmp dword [eax + 0x54], edi
jg 0x456290
push 1
push ebx
call fcn.00436000
add esp, 8
test eax, eax
jne 0x4562c0
mov eax, dword [ebx + 4]
lea ecx, [edi + edi*4]
inc dword [ebx + 0x20]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x28]
push ebx
call fcn.004807a0
add esp, 8
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x30], ecx
mov edi, dword [eax + 4]
lea eax, [esp + 0x20]
push eax
push ecx
push ebp
mov esi, dword [edi]
call fcn.004568f0
mov dword [esp + 0x34], eax
lea eax, [esp + 0x20]
push eax
push esi
push ebp
call fcn.004568f0
push ebp
mov edx, eax
call fcn.0045cb50
push ebp
mov dword [esp + 0x3c], eax
call fcn.0045cb50
push 0x20
push dword [esp + 0x40]
mov dword [esp + 0x60], eax
push edx
push dword [esp + 0x54]
push 0x53
push esi
mov esi, dword [esp + 0x68]
push esi
push ebp
call fcn.00425f60
mov edx, dword [esp + 0x54]
add esp, 0x40
mov edi, dword [edi + 0x18]
mov dword [esp + 0x30], edi
test edx, edx
je 0x456378
mov al, byte [ebp + 0x13]
mov byte [esp + 0x37], al
cmp al, 8
jae 0x456378
xor ecx, ecx
lea eax, [ebp + 0x74]
cmp dword [eax + 0xc], edx
je 0x456374
inc ecx
add eax, 0x14
cmp ecx, 0xa
jl 0x456358
movzx eax, byte [esp + 0x37]
mov dword [ebp + eax*4 + 0x18], edx
inc byte [ebp + 0x13]
jmp 0x456378
mov byte [eax + 6], 1
lea eax, [esp + 0x14]
push eax
push edi
push ebp
call fcn.004568f0
mov edi, dword [esp + 0x44]
push 0x20
push edi
push eax
push dword [esp + 0x40]
push 0x51
push dword [esp + 0x50]
push esi
push ebp
call fcn.00425f60
mov esi, dword [esp + 0xcc]
push esi
push edi
push dword [esp + 0x50]
push 0x48
push ebx
call fcn.00475560
add esp, 0x40
push dword [esp + 0x1c]
push ebp
call fcn.0046a990
push edi
push ebp
call fcn.0046a990
add esp, 0x10
cmp dword [esp + 0x20], 0
je 0x456402
mov bl, byte [ebp + 0x13]
cmp bl, 8
jae 0x456402
xor ecx, ecx
lea eax, [ebp + 0x74]
nop dword [eax]
mov edx, dword [esp + 0x20]
cmp dword [eax + 0xc], edx
je 0x4563fe
inc ecx
add eax, 0x14
cmp ecx, 0xa
jl 0x4563e0
movzx eax, bl
mov dword [ebp + eax*4 + 0x18], edx
inc byte [ebp + 0x13]
jmp 0x456402
mov byte [eax + 6], 1
cmp dword [esp + 0x14], 0
mov edi, esi
je 0x45595f
mov bl, byte [ebp + 0x13]
cmp bl, 8
jae 0x45595f
xor ecx, ecx
lea eax, [ebp + 0x74]
mov edx, dword [esp + 0x14]
cmp dword [eax + 0xc], edx
je 0x45644b
inc ecx
add eax, 0x14
cmp ecx, 0xa
jl 0x456420
movzx eax, bl
mov edi, esi
mov dword [ebp + eax*4 + 0x18], edx
mov eax, edi
inc byte [ebp + 0x13]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov edi, esi
mov byte [eax + 6], 1
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov ebp, dword [edi + 0x28]
movsx eax, word [edi + 0x1c]
inc eax
push esi
movsx ecx, word [ebp + 0x22]
inc ecx
imul ecx, dword [edi + 0x18]
add eax, ecx
push eax
push 0x84
push ebx
call fcn.00475540
movzx eax, word [edi + 0x1c]
add esp, 0x10
test ax, ax
js 0x45595d
cwde
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 4]
cmp byte [eax + ecx*8 + 0x15], 0x45
jne 0x45595d
push esi
push 0x27
push ebx
call fcn.004754d0
add esp, 0xc
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
cmp dword [ebp + 0x19c], 0
jne 0x4564df
push str.RAISE___may_only_be_used_within_a_trigger_program
push ebp
call fcn.00453ae0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov al, byte [edi + 1]
cmp al, 2
jne 0x4564fa
mov eax, dword [ebp + 0x198]
mov ecx, ebp
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
mov al, byte [edi + 1]
mov ecx, dword [edi + 8]
push 0
cmp al, 4
jne 0x456524
push ecx
push 0
push 4
push 0
push 0x18
push ebx
call fcn.004755d0
add esp, 0x1c
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
push 0
push ecx
movsx eax, al
push eax
push 0x713
push ebp
call fcn.0045d500
add esp, 0x18
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov ecx, dword [edi + 0x14]
xor eax, eax
mov dword [esp + 0x2c], eax
push ebx
mov dword [esp + 0x3c], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
call fcn.0047e730
mov edx, dword [edi + 0xc]
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], edx
test edx, edx
je 0x4565de
movups xmm0, xmmword [edx]
movups xmmword [esp + 0x3c], xmm0
movups xmm0, xmmword [edx + 0x10]
movups xmmword [esp + 0x4c], xmm0
movq xmm0, qword [edx + 0x20]
movq qword [esp + 0x5c], xmm0
mov eax, dword [edx + 0x28]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x20]
push eax
push edx
push ebp
call fcn.004568f0
mov cl, byte [esp + 0x48]
add esp, 0xc
and dword [esp + 0x40], 0xffffefff
mov edx, dword [esp + 0x28]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x68]
mov byte [esp + 0x5e], cl
mov byte [esp + 0x3c], 0x9f
mov byte [esp + 0x68], 0x4f
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
lea edi, [eax - 1]
test edi, edi
jle 0x4566eb
mov eax, dword [esp + 0x18]
dec edi
shr edi, 1
inc edi
inc dword [ebp + 0x64]
test edx, edx
mov ecx, dword [eax]
mov eax, dword [esp + 0x78]
cmovne eax, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x2c]
cmove eax, ecx
push ebx
mov dword [esp + 0x30], eax
call fcn.0047e730
push 0x10
push eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
push eax
push ebp
call fcn.00456e40
mov eax, dword [esp + 0x2c]
push esi
push dword [eax + 0x18]
push ebp
call fcn.00454980
mov eax, dword [ebx + 0x18]
add esp, 0x20
mov edx, dword [ebx + 0x20]
mov ecx, edx
mov dword [esp + 0x30], edx
cmp dword [eax + 0x54], edx
jg 0x456662
push 1
push ebx
call fcn.00436000
add esp, 8
test eax, eax
jne 0x456699
mov ecx, dword [ebx + 0x20]
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [ebx + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x14]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push ebp
call fcn.004546c0
mov eax, dword [esp + 0x20]
add esp, 4
mov edx, dword [ebx + 0x18]
neg eax
test eax, eax
jle 0x4566c8
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x4566c8
mov eax, dword [esp + 0x1c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 0x20]
mov dword [ecx], eax
mov eax, dword [ebx + 0x20]
dec eax
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
add eax, 0x30
mov dword [esp + 0x18], eax
sub edi, 1
jne 0x4565f5
mov eax, dword [esp + 0x24]
test al, 1
je 0x456712
inc dword [ebp + 0x64]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x38]
push esi
mov eax, dword [eax + 4]
push dword [eax + ecx*8 - 0x18]
push ebp
call fcn.00454980
push ebp
call fcn.004546c0
add esp, 0x10
jmp 0x456764
mov eax, dword [ebx + 0x18]
mov edi, dword [ebx + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x456731
push 1
push ebx
call fcn.00436000
add esp, 8
test eax, eax
jne 0x456764
mov ecx, dword [ebx + 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 0x18]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x14]
js 0x45677d
mov esi, dword [edx + 0x70]
test esi, esi
je 0x45677d
mov eax, dword [ebx + 0x20]
mov dword [esi + ecx*4], eax
mov eax, dword [ebx + 0x20]
mov edi, dword [esp + 0x10]
dec eax
mov dword [edx + 0x58], eax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov eax, dword [ebx + 0x18]
mov edi, dword [ebx + 0x20]
cmp dword [eax + 0x54], edi
jg 0x4567b3
push 1
push ebx
call fcn.00436000
add esp, 8
test eax, eax
jne 0x45595d
mov eax, dword [ebx + 4]
lea ecx, [edi + edi*4]
inc dword [ebx + 0x20]
mov edi, esi
mov dword [eax + ecx*4 + 8], esi
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret