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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x77a1e4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2d8
push ebx
push esi
mov esi, ecx
lea eax, [esi + 0x3f0]
push edi
mov dword [esp + 0xa4], esi
mov dword [eax], eax
mov dword [eax + 4], eax
push fcn.00436820
push fcn.00570cd0
push 0x1e
lea eax, [esi + 0x458]
push 8
xor ebx, ebx
push eax
mov dword [esp + 0x300], ebx
call fcn.0075c18d
push 0x61f1f0
push fcn.004ec5a0
push 0x1e
lea eax, [esi + 0x548]
push 8
push eax
mov byte [esp + 0x300], 1
call fcn.0075c18d
lea eax, [esi + 0x638]
mov ecx, 0x49
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
add eax, 0x10
dec ecx
jne 0x637f98
lea eax, [esi + 0xac8]
mov ecx, 0x49
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
add eax, 0x10
dec ecx
jne 0x637fb4
lea eax, [esi + 0xf58]
mov ecx, 0x49
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
add eax, 0x10
dec ecx
jne 0x637fd0
lea eax, [esi + 0x13e8]
mov ecx, 0x38
lea esp, [esp]
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
add eax, 0x10
dec ecx
jne 0x637ff0
lea eax, [esi + 0x1768]
mov ecx, 2
lea esp, [esp]
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
add eax, 0x10
dec ecx
jne 0x638010
lea eax, [esi + 0x1788]
mov ecx, 2
lea esp, [esp]
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
add eax, 0x10
dec ecx
jne 0x638030
lea eax, [esi + 0x1fb4]
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [esi + 0x1fb0], 1
mov byte [esi + 0x1f90], 0
push fcn.004022d0
push fcn.005d7ab0
push 2
push 0x68
lea eax, [esi + 0x1fbc]
push eax
mov byte [esp + 0x300], 3
call fcn.0075c18d
push fcn.00490370
push fcn.004af900
push 8
push 0x18
lea ecx, [esi + 0x21b4]
push ecx
mov byte [esp + 0x300], 4
call fcn.0075c18d
push fcn.00490370
push fcn.004af900
push 0x60
push 0x18
lea edx, [esi + 0x2274]
push edx
mov byte [esp + 0x300], 5
call fcn.0075c18d
push fcn.00490370
push fcn.004af900
push 6
push 0x18
lea eax, [esi + 0x2b74]
push eax
mov byte [esp + 0x300], 6
call fcn.0075c18d
mov edx, dword [ebp + 8]
mov dword [esi + 0x2d44], esi
xor eax, eax
lea edi, [esi + 0x2d60]
mov ecx, 0x58
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 0xc]
push 8
mov byte [esp + 0x2f0], 7
mov word [esi + 0xc], 0xffff
mov dword [esi], ecx
mov dword [esi + 4], edx
call fcn.0043c220
mov dword [esi + 0x3f8], eax
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov edi, dword [0x8a1ccc]
mov edx, ecx
imul edx, edx, 0x890
add edx, edi
mov edi, dword [0x8a1cd8]
add esp, 4
cmp edi, ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], ebx
jle 0x638185
mov edi, dword [0x8a1cd4]
jmp 0x638160
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
lea ebx, [ebx]
cmp dword [edi], ecx
jne 0x63816d
movsx ecx, byte [eax + 7]
cmp dword [edi + 4], ecx
je 0x638185
mov ecx, dword [esp + 0x1c]
add edi, 0x40
inc ecx
mov dword [esp + 0x20], edi
cmp ecx, dword [0x8a1cd8]
mov dword [esp + 0x1c], ecx
jl 0x638152
mov edi, dword [edx + 0x844]
xor ecx, ecx
cmp edi, 2
sete cl
lea eax, [edx + 0x20]
mov dword [esp + 0x1c], eax
xor eax, eax
lea edi, [esi + 0x17a8]
push ebx
push ebx
mov dword [esp + 0x74], ecx
mov ecx, 0x1f8
rep stosd dword es:[edi], eax
mov dword [esi + 8], edx
mov edx, dword [esi + 4]
push edx
lea eax, [esi + 0x40]
push eax
mov dword [esi + 0x3b0], ebx
mov dword [esi + 0x3b4], ebx
mov dword [esi + 0x3b8], ebx
mov dword [esi + 0x3bc], ebx
mov dword [esi + 0x3c0], ebx
mov dword [esi + 0x3c4], ebx
mov dword [esi + 0x3c8], ebx
mov byte [esi + 0x2d49], 0xff
mov byte [esi + 0x2d4a], 0xff
call fcn.00631ba0
mov ecx, dword [esi + 0x270]
mov edx, dword [esi + 0x274]
mov eax, dword [esi + 0x278]
mov dword [esi + 0x638], ecx
mov ecx, dword [esi + 0x284]
mov dword [esi + 0x648], edx
mov edx, dword [esi + 0x27c]
mov dword [esi + 0x658], eax
mov eax, dword [esi + 0x280]
mov dword [esi + 0x688], ecx
mov ecx, dword [esi + 0x288]
mov dword [esi + 0x698], edx
mov edx, dword [esi + 0x28c]
mov dword [esi + 0x6a8], eax
mov eax, dword [esi + 0x290]
mov dword [esi + 0x6b8], ecx
mov ecx, dword [esi + 0x2c0]
mov dword [esi + 0x6c8], edx
mov edx, dword [esi + 0x294]
mov dword [esi + 0x6d8], eax
mov eax, dword [esi + 0x298]
mov dword [esi + 0x6f8], ecx
mov ecx, dword [esi + 0x29c]
add esp, 0x10
mov dword [esi + 0x668], 0xa7366ae6
mov dword [esi + 0x678], 0x3c84d757
mov dword [esi + 0x6e8], 0x5799e60b
mov dword [esi + 0x708], 0x7b220ddf
mov dword [esi + 0x718], 0x1b0763a0
mov dword [esi + 0x728], 0xe7e4ef49
mov dword [esi + 0x738], 0x4cdebfca
mov dword [esi + 0x748], 0x60f8b13c
mov dword [esi + 0x758], 0xab88f5d
mov dword [esi + 0x768], 0xd195be56
mov dword [esi + 0x778], 0x90e09671
mov dword [esi + 0x788], 0x13ee21f2
mov dword [esi + 0x798], 0xd689a31b
mov dword [esi + 0x7a8], 0xb8f3415c
mov dword [esi + 0x7b8], 0x2433df4e
mov dword [esi + 0x7c8], 0xf95d432f
mov dword [esi + 0x7d8], 0xa7e6ea53
mov dword [esi + 0x7e8], 0xa532fc46
mov dword [esi + 0x7f8], 0xd947f346
mov dword [esi + 0x808], 0x2b52399
mov dword [esi + 0x818], 0x3617dcfc
mov dword [esi + 0x828], 0x267d188c
mov dword [esi + 0x838], 0xf68ef19f
mov dword [esi + 0x848], 0xbcbbf
mov dword [esi + 0x858], 0x1f40b32
mov dword [esi + 0x868], 0x1d33b7b5
mov dword [esi + 0x878], edx
mov dword [esi + 0x888], eax
mov dword [esi + 0x898], ecx
mov edx, dword [esi + 0x2a0]
mov ecx, dword [esi + 0x2a8]
mov eax, dword [esi + 0x2a4]
mov dword [esi + 0x8a8], edx
mov edx, dword [esi + 0x2ac]
mov dword [esi + 0x8c8], ecx
mov ecx, dword [esi + 0x2b4]
mov dword [esi + 0x8b8], eax
mov eax, dword [esi + 0x2b0]
mov dword [esi + 0x8d8], edx
mov edx, dword [esi + 0x2b8]
mov dword [esi + 0x8f8], ecx
mov ecx, 0x17f9f794
mov dword [esi + 0x8e8], eax
mov dword [esi + 0x908], edx
mov dword [esi + 0x1768], ecx
mov edx, dword [esi + 0x176c]
mov eax, 0x85e9c79e
cmp edx, eax
je 0x638418
mov dword [esi + 0x176c], eax
mov dword [esi + 0x1770], 0xffffffff
mov eax, dword [esi + 0x278]
mov dword [esi + 0x1778], eax
mov dword [esi + 0x1788], ecx
cmp dword [esi + 0x178c], ecx
je 0x638442
mov dword [esi + 0x178c], ecx
mov dword [esi + 0x1790], 0xffffffff
mov ecx, dword [esi + 0x278]
mov edx, dword [esi + 4]
mov dword [esi + 0x1798], ecx
push edx
mov ecx, esi
call fcn.006365c0
mov edi, dword [esi + 0x284]
call fcn.005706c0
lea eax, [eax + eax*4]
mov eax, dword [eax*4 + 0x7fa74c]
cmp eax, ebx
je 0x638490
push edi
push eax
call fcn.0043dbf0
push ebx
push ebx
push eax
mov dword [esp + 0x28], eax
call fcn.00490160
add esp, 0x14
test eax, eax
je 0x638490
mov edi, dword [esp + 0x14]
push ebx
push ebx
push edi
call fcn.00490160
add esp, 0xc
cmp eax, ebx
je 0x6384a3
mov byte [eax + 0x54], 0
cmp edi, dword [esi + 0x68c]
je 0x6384bb
mov dword [esi + 0x68c], edi
mov dword [esi + 0x690], 0xffffffff
mov ecx, esi
call fcn.00615000
mov ecx, dword [ebp + 8]
push ecx
mov ecx, esi
call fcn.0061fcc0
mov ecx, dword [0x8654a4]
xor eax, eax
mov edi, 3
cmp ecx, edi
mov ecx, dword [esi + 0x6ec]
setne al
dec eax
and eax, 0xc4547ac1
add eax, 0xa244d489
cmp eax, ecx
je 0x638504
mov dword [esi + 0x6ec], eax
mov dword [esi + 0x6f0], 0xffffffff
mov dword [esi + 0x2c14], ebx
lea eax, [esi + 0x2c64]
mov ecx, 0x12
mov dword [eax - 0x4c], ebx
mov dword [eax], ebx
mov dword [eax + 0x4c], ebx
mov dword [eax + 0x98], ebx
add eax, 4
dec ecx
jne 0x638515
mov ecx, esi
mov dword [esi + 0x354], ebx
mov dword [esi + 0x358], ebx
mov dword [esi + 0x364], ebx
mov dword [esi + 0x370], ebx
mov dword [esi + 0x37c], ebx
call fcn.00634580
cmp dword [0x8654a4], edi
je 0x638580
call fcn.005108a0
test eax, eax
jne 0x638580
mov edi, dword [esp + 0x1c]
push edi
lea edx, [esp + 0xac]
push str._s_SHADOWIG
push edx
call fcn.00440120
lea eax, [esp + 0xb4]
push eax
jmp 0x63859f
mov edi, dword [esp + 0x1c]
push edi
lea ecx, [esp + 0xac]
push str._s_SHADOWFE
push ecx
call fcn.00440120
lea edx, [esp + 0xb4]
push edx
call fcn.0043dbc0
push ebx
push ebx
push eax
call fcn.00490160
add esp, 0x1c
push edi
mov dword [esi + 0x33c], eax
lea eax, [esp + 0xac]
push str._s_NEON
push eax
call fcn.00440120
lea ecx, [esp + 0xb4]
push ecx
call fcn.0043dbc0
push ebx
push ebx
push eax
call fcn.00490160
add esp, 0x1c
push ebx
push 1
push str.NEONBLUR
mov dword [esi + 0x344], eax
call fcn.0043dbc0
add esp, 4
push eax
call fcn.00490160
push ebx
push ebx
push 0xbadb4475
mov dword [esi + 0x348], eax
call fcn.00490160
mov dword [esi + 0x340], eax
mov eax, dword [esi + 0x33c]
add esp, 0x18
cmp eax, ebx
je 0x63862f
mov byte [eax + 0x54], 0
mov edx, dword [esi + 0x33c]
mov byte [edx + 0x51], 2
mov eax, dword [esi + 0x340]
cmp eax, ebx
je 0x638647
mov byte [eax + 0x54], 0
mov eax, dword [esi + 0x340]
mov byte [eax + 0x51], 3
mov eax, dword [esi + 0x344]
cmp eax, ebx
je 0x63865f
mov byte [eax + 0x54], 0
mov ecx, dword [esi + 0x344]
mov byte [ecx + 0x51], 4
mov eax, dword [esi]
cmp eax, ebx
je 0x63866d
mov edi, dword [eax + 0x958]
jmp 0x63866f
xor edi, edi
cmp edi, ebx
je 0x638710
fld dword [esi + 0x24]
mov edx, dword [esi + 0x10]
fld dword [esi + 0x20]
lea eax, [esi + 0x17a8]
fld dword [esi + 0x14]
mov dword [edi + 0x58], edx
fstp dword [edi + 0x5c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0x3f
fstp dword [edi + 0x60]
fstp dword [edi + 0x64]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.00610b80
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
add ecx, 0x20
dec eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
jne 0x6386a1
fld dword [esi + 0x14]
mov edx, dword [esi + 0x10]
fld dword [esi + 0x18]
mov dword [edi + 0x150], edx
fxch st(1)
fstp dword [edi + 0x154]
fstp dword [edi + 0x158]
mov eax, dword [esi + 0x20]
fld dword [esi + 0x24]
fld dword [esi + 0x28]
mov dword [edi + 0x160], eax
fxch st(1)
fstp dword [edi + 0x164]
fstp dword [edi + 0x168]
mov ecx, dword [esi]
mov dword [edi + 0x100], ecx
mov edx, dword [esi + 4]
mov dword [edi + 0x104], edx
mov ecx, dword [esi + 0x1848]
cmp ecx, ebx
je 0x63875b
call fcn.00488e40
cmp eax, ebx
je 0x638727
fld dword [eax]
jmp 0x63872d
fld dword [0x7d7d3c]
cmp eax, ebx
fstp dword [esi + 0x30]
je 0x638739
fld dword [eax + 4]
jmp 0x63873f
fld dword [0x7d7d3c]
cmp eax, ebx
fstp dword [esi + 0x34]
je 0x63874b
fld dword [eax + 8]
jmp 0x638751
fld dword [0x7d7d3c]
mov ecx, esi
fstp dword [esi + 0x38]
call fcn.00620250
mov ecx, dword [ebp + 8]
push 1
add ecx, 0x10
call fcn.005b5070
mov edi, eax
lea ebx, [edi + 0x10]
push ebx
push 0
lea ecx, [esi + 0x2d60]
mov dword [esp + 0x20], edi
call fcn.0060c000
add edi, 0x40
push edi
push 1
lea ecx, [esi + 0x2d60]
call fcn.0060c000
mov eax, dword [esp + 0x18]
add eax, 0x70
push eax
push 2
lea ecx, [esi + 0x2d60]
call fcn.0060c000
mov eax, dword [esp + 0x18]
add eax, 0xa0
push eax
push 3
lea ecx, [esi + 0x2d60]
call fcn.0060c000
fld dword [ebx]
mov eax, dword [esp + 0x18]
fadd dword [eax + 0xa0]
add eax, 0x70
fld dword [eax + 0x34]
push ebx
fadd dword [ebx + 4]
fld dword [eax + 0x38]
push 4
fadd dword [ebx + 8]
lea ecx, [esi + 0x2d60]
fstp dword [esp + 0x50]
fxch st(1)
fmul dword [0x784260]
fstp dword [esp + 0x48]
fmul dword [0x784260]
fstp dword [esp + 0x4c]
fld dword [esp + 0x50]
fmul dword [0x784260]
fstp dword [esp + 0x50]
fld dword [eax]
fadd dword [edi]
fld dword [eax + 4]
fadd dword [edi + 4]
fld dword [eax + 8]
fadd dword [edi + 8]
fstp dword [esp + 0x80]
fxch st(1)
fmul dword [0x784260]
fstp dword [esp + 0x78]
fmul dword [0x784260]
fstp dword [esp + 0x7c]
fld dword [esp + 0x80]
fmul dword [0x784260]
fstp dword [esp + 0x80]
call fcn.0060c000
push edi
push 5
lea ecx, [esi + 0x2d60]
call fcn.0060c000
mov eax, dword [esp + 0x18]
add eax, 0x70
push eax
push 6
lea ecx, [esi + 0x2d60]
call fcn.0060c000
mov eax, dword [esp + 0x18]
add eax, 0xa0
push eax
push 7
lea ecx, [esi + 0x2d60]
call fcn.0060c000
push ebx
push 8
lea ecx, [esi + 0x2d60]
call fcn.0060c000
mov eax, dword [esp + 0x18]
add eax, 0x70
push eax
push 9
lea ecx, [esi + 0x2d60]
call fcn.0060c000
fld dword [esp + 0x70]
fadd dword [esp + 0x40]
lea eax, [esp + 0x40]
fld dword [esp + 0x74]
push eax
fadd dword [esp + 0x48]
push 0xa
fld dword [esp + 0x80]
lea ecx, [esi + 0x2d60]
fadd dword [esp + 0x50]
fstp dword [esp + 0x50]
fxch st(1)
fmul dword [0x784260]
fstp dword [esp + 0x48]
fmul dword [0x784260]
fstp dword [esp + 0x4c]
fld dword [esp + 0x50]
fmul dword [0x784260]
fstp dword [esp + 0x50]
call fcn.0060c000
fld dword [ebx + 4]
mov eax, dword [esp + 0x18]
fsub dword [edi + 4]
fld dword [ebx + 8]
add eax, 0x70
fsub dword [edi + 8]
fld dword [ebx]
lea ecx, [esp + 0x80]
fsub dword [edi]
push ecx
fstp dword [esp + 0x94]
fxch st(1)
lea edx, [esp + 0x94]
fstp dword [esp + 0x98]
fstp dword [esp + 0x9c]
fld dword [edi + 4]
fsub dword [eax + 4]
fld dword [edi + 8]
fsub dword [eax + 8]
fld dword [edi]
fsub dword [eax]
fstp dword [esp + 0x84]
fxch st(1)
fstp dword [esp + 0x88]
fstp dword [esp + 0x8c]
push edx
lea eax, [esp + 0x58]
push eax
call fcn.0043d250
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x60]
push edx
call fcn.0043cf80
mov eax, dword [esp + 0x2c]
fld dword [eax + 0x20]
mov ecx, dword [esp + 0x2c]
fcom dword [eax + 0x50]
add esp, 0x14
fnstsw ax
test ah, 5
jp 0x63899b
fstp st(0)
fld dword [ecx + 0x50]
fcom dword [ecx + 0x80]
fnstsw ax
test ah, 5
jp 0x6389b0
fstp st(0)
fld dword [ecx + 0x80]
fcom dword [ecx + 0xb0]
fnstsw ax
test ah, 5
jp 0x6389c5
fstp st(0)
fld dword [ecx + 0xb0]
fld dword [esp + 0x50]
xor ebx, ebx
fmul st(1)
lea edx, [esi + 0x17a4]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], edx
fstp dword [esp + 0x50]
fld dword [esp + 0x54]
fmul st(1)
fstp dword [esp + 0x54]
fld dword [esp + 0x58]
fmul st(1)
fstp dword [esp + 0x58]
fstp st(0)
jmp 0x638a00
xor eax, eax
mov ecx, 0x7e
lea edi, [esp + 0xe8]
rep stosd dword es:[edi], eax
lea eax, [esp + 0xe8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], 2
jmp 0x638a30
mov ecx, dword [esp + 0x38]
xor eax, eax
mov dword [esp + 0x18], ecx
lea ebx, [ebx]
mov edi, dword [edx + 4]
xor ecx, ecx
test ebx, ebx
jle 0x638a4b
mov ecx, dword [edx]
test edi, edi
je case.default.0x638a5b
cmp eax, 0x18
ja case.default.0x638a5b
movzx ebx, byte [eax + 0x639728]
jmp dword [ebx*4 + 0x639720]
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x638a78
jle 0x638a9b
test ecx, ecx
je 0x638a9b
mov ecx, dword [ecx + 8]
cmp ecx, dword [edi + 8]
je 0x638a9b
mov ecx, dword [esi + 4]
cmp byte [ecx + eax + 0x838], 0
je 0x638a9b
mov ecx, dword [esp + 0x18]
mov dword [ecx], edi
jmp 0x638a9b
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0
mov edi, dword [esp + 0x18]
inc eax
add edi, 8
add edx, 0x20
cmp eax, 0x3f
mov dword [esp + 0x18], edi
jl 0x638a40
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
add edx, 0x10
add ecx, 4
dec eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x20], eax
jne 0x638a30
lea edx, [esp + 0xe8]
push 0x7e
push edx
call fcn.00488ea0
mov edx, dword [esp + 0x2c]
add esp, 8
inc ebx
add edx, 4
cmp ebx, 4
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], edx
jl 0x638a00
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x68c]
xor eax, eax
test ecx, ecx
je 0x638b13
call fcn.0061f480
push eax
call fcn.0048f630
push str.CARBONFIBER
mov dword [esi + 0x384], eax
call fcn.0043dbc0
push eax
call fcn.0048f630
mov dword [esi + 0x388], eax
mov ecx, dword [edi + 0x7f4]
add esp, 0xc
test ecx, ecx
mov eax, 0x471a1dca
je 0x638b4c
call fcn.0061f480
push eax
call fcn.0048f630
mov dword [esi + 0x38c], eax
mov eax, dword [edi + 0x6b4]
mov ecx, dword [edi + 0x6ac]
mov edx, dword [edi + 0x6a8]
mov ebx, dword [edi + 0x5c0]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x6a4]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x6b0]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 0x6bc]
mov dword [esp + 0x3c], edx
mov edx, dword [edi + 0x6c0]
mov dword [esp + 0x24], ebx
mov ebx, dword [edi + 0x5ac]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x604]
add esp, 4
test eax, eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi + 0x5fc]
mov dword [esp + 0x14], edx
mov edx, dword [edi + 0x5d0]
mov dword [esp + 0x24], ebx
mov ebx, dword [edi + 0x610]
mov edi, dword [edi + 0x618]
je 0x638be1
mov al, byte [eax + 5]
shr al, 5
cmp al, 1
jge 0x638be5
xor eax, eax
jmp 0x638be9
mov eax, dword [esp + 0x1c]
test edx, edx
je 0x638bf8
mov dl, byte [edx + 5]
shr dl, 5
cmp dl, 1
jge 0x638c00
mov dword [esp + 0x28], 0
xor edx, edx
cmp ecx, edx
je 0x638c11
mov cl, byte [ecx + 5]
shr cl, 5
cmp cl, 1
jge 0x638c15
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0x20]
cmp ecx, edx
je 0x638c28
mov cl, byte [ecx + 5]
shr cl, 5
cmp cl, 1
jge 0x638c2c
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x24]
cmp ecx, edx
je 0x638c3f
mov cl, byte [ecx + 5]
shr cl, 5
cmp cl, 1
jge 0x638c43
mov dword [esp + 0x3c], edx
cmp ebx, edx
je 0x638c52
mov cl, byte [ebx + 5]
shr cl, 5
cmp cl, 1
jge 0x638c56
mov dword [esp + 0x14], edx
cmp edi, edx
je 0x638c65
mov cl, byte [edi + 5]
shr cl, 5
cmp cl, 3
jge 0x638c69
mov dword [esp + 0x2c], edx
xor ebx, ebx
xor edi, edi
cmp eax, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], edx
je 0x638c90
mov ecx, eax
call fcn.0061f480
mov ebx, eax
xor edx, edx
mov eax, dword [esp + 0x28]
cmp eax, edx
je 0x638ca3
mov ecx, eax
call fcn.0061f480
mov edi, eax
xor edx, edx
mov eax, dword [esp + 0x38]
cmp eax, edx
je 0x638cb8
mov ecx, eax
call fcn.0061f480
mov dword [esp + 0x34], eax
xor edx, edx
mov eax, dword [esp + 0x18]
cmp eax, edx
je 0x638ccd
mov ecx, eax
call fcn.0061f480
mov dword [esp + 0x30], eax
xor edx, edx
mov eax, dword [esp + 0x3c]
cmp eax, edx
je 0x638ce2
mov ecx, eax
call fcn.0061f480
mov dword [esp + 0x24], eax
xor edx, edx
mov ecx, dword [esp + 0x14]
cmp ecx, edx
je 0x638cf5
call fcn.0061f480
mov dword [esp + 0x20], eax
xor edx, edx
mov eax, dword [esp + 0x2c]
cmp eax, edx
je 0x638d0a
mov ecx, eax
call fcn.0061f480
mov dword [esp + 0x1c], eax
xor edx, edx
cmp ebx, edx
jne 0x638d14
mov dword [esp + 0x14], edx
jmp 0x638d23
push ebx
call fcn.0048f630
add esp, 4
mov dword [esp + 0x14], eax
xor edx, edx
cmp edi, edx
jne 0x638d2d
mov dword [esp + 0x2c], edx
jmp 0x638d3c
push edi
call fcn.0048f630
add esp, 4
mov dword [esp + 0x2c], eax
xor edx, edx
cmp dword [esp + 0x34], edx
jne 0x638d48
mov dword [esp + 0x34], edx
jmp 0x638d5b
mov edx, dword [esp + 0x34]
push edx
call fcn.0048f630
add esp, 4
mov dword [esp + 0x34], eax
xor edx, edx
cmp dword [esp + 0x30], edx
jne 0x638d67
mov dword [esp + 0x30], edx
jmp 0x638d7a
mov eax, dword [esp + 0x30]
push eax
call fcn.0048f630
add esp, 4
mov dword [esp + 0x30], eax
xor edx, edx
cmp dword [esp + 0x24], edx
jne 0x638d84
xor ebx, ebx
jmp 0x638d93
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0048f630
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x638d9f
xor edi, edi
jmp 0x638dae
mov edx, dword [esp + 0x20]
push edx
call fcn.0048f630
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x638dbe
mov eax, dword [esi + 0x384]
jmp 0x638dcb
mov eax, dword [esp + 0x1c]
push eax
call fcn.0048f630
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [esi + 0x390], ecx
mov ecx, dword [esp + 0x34]
mov dword [esi + 0x394], edx
mov edx, dword [esp + 0x30]
mov dword [esi + 0x398], ecx
mov dword [esi + 0x3a0], edx
mov dword [esi + 0x3a4], ebx
mov dword [esi + 0x3a8], edi
mov dword [esi + 0x3ac], 0
mov ecx, esi
mov dword [esi + 0x39c], eax
call fcn.0061fb90
mov edi, dword [esi + 0x1b48]
test edi, edi
mov ebx, dword [esi + 0x1b68]
je 0x638e3f
push str.MARKER_BRAKE
call fcn.0043dbc0
add esp, 4
push eax
mov ecx, edi
call fcn.0048d880
mov edi, eax
jmp 0x638e41
xor edi, edi
test ebx, ebx
je 0x638e5c
push str.MARKER_BRAKE
call fcn.0043dbc0
add esp, 4
push eax
mov ecx, ebx
call fcn.0048d880
jmp 0x638e5e
xor eax, eax
test edi, edi
je 0x638e67
fld dword [edi + 0x44]
jmp 0x638e6d
fld dword [0x7d7d3c]
test eax, eax
fstp dword [esi + 0x430]
je 0x638e7c
fld dword [eax + 0x44]
jmp 0x638e82
fld dword [0x7d7d3c]
fstp dword [esi + 0x434]
mov eax, dword [0x8a1c1c]
push eax
call fcn.00440ea0
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x638ed7
mov ecx, ebx
and ecx, 0xfffffffe
mov edx, ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x14], ecx
mov ecx, ebx
and ecx, 0xfffffffe
mov dword [eax + 4], edx
mov edx, ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x14], ecx
mov ecx, ebx
and ecx, 0xfffffffe
mov dword [eax + 8], edx
mov edx, ecx
mov dword [esp + 0x14], ebx
mov dword [eax + 0x10], ebx
mov dword [esp + 0x14], ecx
mov dword [eax + 0xc], edx
jmp 0x638ed9
xor eax, eax
mov edx, dword [esi + 0x54c]
lea ecx, [esi + 0x548]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov eax, dword [esi + 4]
push 1
lea ecx, [eax + 0x10]
call fcn.005b5070
mov edi, eax
mov eax, dword [0x8a1c1c]
push eax
call fcn.00440ea0
add esp, 4
cmp eax, ebx
je 0x638f72
fld dword [edi + 0x48]
fadd dword [edi + 0x18]
fmul dword [0x784260]
fld dword [edi + 0x44]
fadd dword [edi + 0x14]
fmul dword [0x784260]
fld dword [edi + 0x10]
fadd dword [edi + 0x40]
mov dword [eax + 0x10], ebx
fmul dword [0x784260]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov dword [eax + 4], edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [eax + 8], edx
mov edx, ecx
mov dword [esp + 0x14], ecx
mov dword [eax + 0xc], edx
jmp 0x638f74
xor eax, eax
mov edx, dword [esi + 0x554]
lea ecx, [esi + 0x550]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov eax, dword [0x8a1c1c]
push eax
call fcn.00440ea0
add esp, 4
cmp eax, ebx
je 0x639007
fld dword [edi + 0xa8]
fadd dword [edi + 0x78]
fmul dword [0x784260]
fld dword [edi + 0xa4]
fadd dword [edi + 0x74]
fmul dword [0x784260]
fld dword [edi + 0xa0]
fadd dword [edi + 0x70]
mov dword [eax + 0x10], ebx
fmul dword [0x784260]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov dword [eax + 4], edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [eax + 8], edx
mov edx, ecx
mov dword [esp + 0x14], ecx
mov dword [eax + 0xc], edx
jmp 0x639009
xor eax, eax
mov edx, dword [esi + 0x55c]
lea ecx, [esi + 0x558]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov eax, dword [0x8a1c1c]
push eax
call fcn.00440ea0
add esp, 4
cmp eax, ebx
je 0x63909c
fld dword [edi + 0xa8]
fadd dword [edi + 0x18]
fmul dword [0x784260]
fld dword [edi + 0xa4]
fadd dword [edi + 0x14]
fmul dword [0x784260]
fld dword [edi + 0x10]
fadd dword [edi + 0xa0]
mov dword [eax + 0x10], ebx
fmul dword [0x784260]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov dword [eax + 4], edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [eax + 8], edx
mov edx, ecx
mov dword [esp + 0x14], ecx
mov dword [eax + 0xc], edx
jmp 0x63909e
xor eax, eax
mov edx, dword [esi + 0x564]
lea ecx, [esi + 0x560]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov eax, dword [0x8a1c1c]
push eax
call fcn.00440ea0
add esp, 4
cmp eax, ebx
je 0x639128
fld dword [edi + 0x78]
fadd dword [edi + 0x48]
fmul dword [0x784260]
fld dword [edi + 0x74]
fadd dword [edi + 0x44]
fmul dword [0x784260]
fld dword [edi + 0x70]
fadd dword [edi + 0x40]
mov dword [eax + 0x10], ebx
fmul dword [0x784260]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov dword [eax + 4], edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [eax + 8], edx
mov edx, ecx
mov dword [esp + 0x14], ecx
mov dword [eax + 0xc], edx
jmp 0x63912a
xor eax, eax
mov edx, dword [esi + 0x56c]
lea ecx, [esi + 0x568]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov eax, dword [0x8a1c1c]
push eax
call fcn.00440ea0
add esp, 4
cmp eax, ebx
je 0x639199
fld dword [edi + 0x18]
fld dword [edi + 0x14]
fld dword [edi + 0x10]
mov dword [eax + 0x10], ebx
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov dword [eax + 4], edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [eax + 8], edx
mov edx, ecx
mov dword [esp + 0x14], ecx
mov dword [eax + 0xc], edx
jmp 0x63919b
xor eax, eax
mov edx, dword [esi + 0x574]
lea ecx, [esi + 0x570]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov eax, dword [0x8a1c1c]
push eax
call fcn.00440ea0
add esp, 4
cmp eax, ebx
je 0x63920a
fld dword [edi + 0x48]
fld dword [edi + 0x44]
fld dword [edi + 0x40]
mov dword [eax + 0x10], ebx
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov dword [eax + 4], edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [eax + 8], edx
mov edx, ecx
mov dword [esp + 0x14], ecx
mov dword [eax + 0xc], edx
jmp 0x63920c
xor eax, eax
mov edx, dword [esi + 0x57c]
lea ecx, [esi + 0x578]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov eax, dword [0x8a1c1c]
push eax
call fcn.00440ea0
add esp, 4
cmp eax, ebx
je 0x63927b
fld dword [edi + 0x78]
fld dword [edi + 0x74]
fld dword [edi + 0x70]
mov dword [eax + 0x10], ebx
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov dword [eax + 4], edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [eax + 8], edx
mov edx, ecx
mov dword [esp + 0x14], ecx
mov dword [eax + 0xc], edx
jmp 0x63927d
xor eax, eax
mov edx, dword [esi + 0x584]
lea ecx, [esi + 0x580]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov eax, dword [0x8a1c1c]
push eax
call fcn.00440ea0
add esp, 4
cmp eax, ebx
je 0x6392f5
fld dword [edi + 0xa8]
fld dword [edi + 0xa4]
fld dword [edi + 0xa0]
mov dword [eax + 0x10], ebx
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x14]
mov dword [eax + 4], edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffe
mov dword [eax + 8], edx
mov edx, ecx
mov dword [esp + 0x14], ecx
mov dword [eax + 0xc], edx
jmp 0x6392f7
xor eax, eax
mov edx, dword [esi + 0x58c]
lea ecx, [esi + 0x588]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
lea eax, [esi + 0x17a8]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], eax
jmp 0x639320
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x1c]
mov dl, byte [ecx + eax + 0x838]
test dl, dl
je 0x6396b2
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
test eax, eax
mov dword [esp + 0x14], eax
je 0x6396b2
push 0
mov ecx, eax
call fcn.0048d830
mov ebx, eax
test ebx, ebx
je 0x6396b2
jmp 0x639360
mov eax, dword [ebx]
cmp eax, 0x9db90133
mov dword [esp + 0x18], 0
ja 0x639496
je 0x6394f3
cmp eax, 0x494ed280
ja 0x63941a
je 0x639575
cmp eax, 0x1b0763a0
ja 0x6393d5
je 0x63940f
cmp eax, 0xab88f5d
ja 0x6393bf
je 0x6393f9
cmp eax, 0x2b52399
je 0x639534
cmp eax, 0x5f63788
jne 0x63969e
lea edi, [esi + 0x608]
jmp 0x6395c9
cmp eax, 0xbea251b
jne 0x63969e
lea edi, [esi + 0x610]
jmp 0x6395c9
cmp eax, 0x3df28f69
ja 0x639404
je 0x6395c3
cmp eax, 0x2f96d0fd
je 0x6393f9
cmp eax, 0x31a66786
je 0x639588
jmp 0x63969e
lea edi, [esi + 0x5d0]
jmp 0x6395c9
cmp eax, 0x3f68f920
jne 0x63969e
lea edi, [esi + 0x5b0]
jmp 0x6395c9
cmp eax, 0x68100815
ja 0x63946e
je 0x639463
cmp eax, 0x60f8b13c
ja 0x63944d
je 0x639458
cmp eax, 0x4cdebfca
je 0x6395bb
cmp eax, 0x59a55db5
jne 0x63969e
lea edi, [esi + 0x590]
jmp 0x6395c9
cmp eax, 0x64b0bb1c
jne 0x63969e
lea edi, [esi + 0x5c8]
jmp 0x6395c9
lea edi, [esi + 0x5a0]
jmp 0x6395c9
cmp eax, 0x6ec7e79f
je 0x63948b
cmp eax, 0x725758bf
je 0x639508
cmp eax, 0x7b220ddf
jne 0x63969e
lea edi, [esi + 0x5a8]
jmp 0x6395c9
cmp eax, 0xc4ec23c8
ja 0x639549
je 0x6393b4
cmp eax, 0xaa35c17f
ja 0x639513
je 0x639508
cmp eax, 0xa5b28001
ja 0x6394e8
je 0x6395b3
cmp eax, 0xa2799c2b
je 0x6395b3
cmp eax, 0xa532fc46
jne 0x63969e
lea edx, [esi + 0x5f0]
lea edi, [esi + 0x5d8]
mov dword [esp + 0x18], edx
jmp 0x6395c9
cmp eax, 0xa7e6ea53
jne 0x63969e
lea eax, [esi + 0x5e8]
lea edi, [esi + 0x5d8]
mov dword [esp + 0x18], eax
jmp 0x6395c9
lea edi, [esi + 0x618]
jmp 0x6395c9
cmp eax, 0xbcf8a18b
je 0x6395b3
cmp eax, 0xbd7cf15e
je 0x6395b3
cmp eax, 0xbf700a79
jne 0x63969e
lea ecx, [esi + 0x600]
lea edi, [esi + 0x5e0]
mov dword [esp + 0x18], ecx
jmp 0x6395c9
cmp eax, 0xdf066a41
ja 0x63959a
je 0x6395b3
cmp eax, 0xd09091c6
ja 0x63957d
je 0x6394d3
cmp eax, 0xc52bf01b
je 0x6393ca
cmp eax, 0xc805f7e0
jne 0x63969e
lea edi, [esi + 0x620]
jmp 0x6395c9
cmp eax, 0xd947f346
jne 0x63969e
lea eax, [esi + 0x5f8]
lea edi, [esi + 0x5e0]
mov dword [esp + 0x18], eax
jmp 0x6395c9
cmp eax, 0xe7e4ef49
je 0x6395c3
cmp eax, 0xe898cfaa
je 0x6395bb
cmp eax, 0xf21be91e
jne 0x63969e
lea edi, [esi + 0x598]
jmp 0x6395c9
lea edi, [esi + 0x5c0]
jmp 0x6395c9
lea edi, [esi + 0x5b8]
test edi, edi
je 0x639630
mov ecx, dword [0x8a1c1c]
push ecx
call fcn.00440ea0
add esp, 4
test eax, eax
je 0x639624
mov dword [eax + 0x10], ebx
mov edx, dword [ebx + 0x40]
mov dword [eax + 4], edx
mov ecx, dword [ebx + 0x44]
mov dword [eax + 8], ecx
mov edx, dword [ebx + 0x48]
mov ecx, dword [eax + 4]
mov dword [eax + 0xc], edx
mov edx, ecx
and edx, 0xfffffffe
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 8]
mov dword [eax + 4], edx
mov edx, ecx
and edx, 0xfffffffe
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0xc]
mov dword [eax + 8], edx
mov edx, ecx
and edx, 0xfffffffe
mov dword [esp + 0x34], ecx
mov dword [eax + 0xc], edx
jmp 0x639626
xor eax, eax
mov ecx, dword [edi + 4]
mov dword [edi + 4], eax
mov dword [ecx], eax
mov dword [eax], edi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x63969e
mov eax, dword [0x8a1c1c]
push eax
call fcn.00440ea0
add esp, 4
test eax, eax
je 0x63968e
mov dword [eax + 0x10], ebx
mov ecx, dword [ebx + 0x40]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 0x44]
mov dword [eax + 8], edx
mov ecx, dword [ebx + 0x48]
mov edx, dword [eax + 4]
mov dword [eax + 0xc], ecx
mov ecx, edx
and ecx, 0xfffffffe
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 8]
mov dword [eax + 4], ecx
mov ecx, edx
and ecx, 0xfffffffe
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 0xc]
mov dword [eax + 8], ecx
mov ecx, edx
and ecx, 0xfffffffe
mov dword [esp + 0x28], edx
mov dword [eax + 0xc], ecx
jmp 0x639690
xor eax, eax
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 4]
mov dword [edx + 4], eax
mov dword [ecx], eax
mov dword [eax], edx
mov ecx, dword [esp + 0x14]
push ebx
call fcn.0048d830
mov ebx, eax
test ebx, ebx
jne 0x639360
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
inc eax
add edx, 0x20
cmp eax, 0x3e
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
jle 0x639320
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x639704
mov edi, 0x8027c4
lea ebx, [esi + 0x458]
cmp edi, 0x80282c
je 0x6396f6
mov edx, dword [edi]
push edx
push ebx
call fcn.0048b840
add esp, 8
add edi, 8
add ebx, 8
cmp edi, 0x8028b4
jl 0x6396e2
mov ecx, dword [esp + 0x2e4]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8